gpt4 book ai didi

ios - SceneKit:如何在不禁用 PBR 的情况下在 iOS 10 上重现 iOS 9 灯光颜色效果(一个方向,一个环境)?

转载 作者:可可西里 更新时间:2023-11-01 04:50:14 24 4
gpt4 key购买 nike

As this thread在 Apple 论坛上提到,iOS 10 上的灯光现在变弱了,并且改变了场景的外观。

线程建议将 SCNDisableLinearSpaceRendering 设置为 YES,但这没有用。换句话说,使用 SCNDisableLinearSpaceRendering 不会让您的场景在 iOS 10 上看起来与在 iOS 9 上一样——至少在我们的测试中不会。

我们也试过:

floorNode.geometry?.firstMaterial?.lightingModel = SCNMaterial.LightingModel.blinn

下面的屏幕截图显示了同一场景之间的差异。注意地板是如何从绿色变成黄色的,即使照明是相同的。

场景包含一个定向光和一个环境光。

用于再现场景的文件:https://www.dropbox.com/sh/cg5f7hyf1oonxfu/AAAJef7LhpSxuJyUSjqfGbmca?dl=0 .

即使它确实有效,将 SCNDisableLinearSpaceRendering 设置为 YES 似乎也会禁用 PBR。

我们的应用程序允许用户自定义方向灯的颜色。目标是在 iOS 10 场景中重现来自 iOS 9 场景的相同自定义光照,同时利用 PBR。

1) 我们如何确保 iOS 10 场景看起来与 iOS 8/9 场景相同?

2) 如何在受益于 PBR 的同时取得第一名?

iOS 8/9(在模拟器上运行):

enter image description here

iOS 10(在用户设备上运行):

enter image description here

最佳答案

您可以像在 iOS 9 上一样在 iOS 10 上渲染您的场景,方法是将其 Material 的光照模型从 SCNLightingModelPhysicallyBased 更改为SCNLightingModelBlinn

示例:如果您的场景中只有一个 3D 模型:

for(SCNMaterial * mt in model.geometry.materials)
mt.lightingModelName = SCNLightingModelBlinn;

但是,这样做您将无法利用 PBR。如果您想继续使用 PBR,则可以使用 SCNLightintensitytemperature 属性来获得不同的结果。

关于ios - SceneKit:如何在不禁用 PBR 的情况下在 iOS 10 上重现 iOS 9 灯光颜色效果(一个方向,一个环境)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39522086/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com