就像这条线在苹果论坛上提到,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 9场景在一个iOS 10场景,同时利用PBR。
1)如何确保iOS 10场景看起来与iOS 8/9场景相同?
2)如何在受益于PBR的同时实现#1?
iOS 8/9 (在模拟器上运行):
iOS 10 (在用户设备上运行):
发布于 2016-09-26 06:43:34
这是现场工具包中的一个已确认的bug。我们在中以Bug编号28459280提交了一份报告。问题是金属总是在locksAmbientWithDiffuse
10上将iOS设置为true
。
根据场景工具包工程师之一,解决方法是手动将locksAmbientWithDiffuse
设置为所讨论节点的true
(在本例中为楼层节点),然后调整iOS 8/9上的照明,直到达到所需的外观。
这应该确保iOS 10场景看起来与iOS 8/9场景相同。
发布于 2016-09-23 05:29:09
您可以在iOS 10
上渲染场景,就像在iOS 9
上渲染一样,方法是将其材质的照明模型从SCNLightingModelPhysicallyBased
更改为SCNLightingModelBlinn
。
示例:如果场景中只有一个3D模型:
for(SCNMaterial * mt in model.geometry.materials)
mt.lightingModelName = SCNLightingModelBlinn;
然而,通过这样做,您将无法利用PBR。如果您想继续使用PBR,那么您可以使用intensity
和temperature
属性SCNLight
来获得不同的结果。
https://stackoverflow.com/questions/39522086
复制相似问题