Cra*_*lot 5 lighting ios scenekit pbr
正如苹果论坛上提到的这个主题提到的那样,iOS 10上的灯现在变弱了,改变了场景的样子.
线程建议设置SCNDisableLinearSpaceRendering为YES,但这不起作用.换句话说,使用SCNDisableLinearSpaceRendering不会使你的场景在iOS 10上看起来与在iOS 9上看起来相同 - 至少在我们的测试中没有.
我们还尝试过:
floorNode.geometry?.firstMaterial?.lightingModel = SCNMaterial.LightingModel.blinn
Run Code Online (Sandbox Code Playgroud)
下面的屏幕截图显示了同一场景之间的差异.注意即使灯光相同,地板也会从绿色变为黄色.
场景包含一个方向光和一个环境光.
用于再现场景的文件:https://www.dropbox.com/sh/cg5f7hyf1oonxfu/AAAJef7LhpSxuJyUSjqfGbmca?dl = 0.
即使它确实有效,设置SCNDisableLinearSpaceRendering为YES似乎禁用PBR.
我们的应用程序允许用户自定义定向灯的颜色.目标是在利用PBR的同时从iOS 10场景中的iOS 9场景重现相同的定制照明.
1)我们如何确保iOS 10场景与iOS 8/9场景完全相同?
2)如何在受益于PBR的同时实现#1?
iOS 8/9(在模拟器上运行):
iOS 10(在用户设备上运行):
这是场景套件中已确认的错误。我们在 Bug Reporter 中提交了一份错误编号为 28459280 的报告。问题是 Metal 在 iOS 10 上始终设置locksAmbientWithDiffuse为true。
据一位 Scene Kit 工程师介绍,解决方法是手动设置locksAmbientWithDiffuse相关true节点(在本例中为地板节点),然后调整 iOS 8/9 上的照明,直到达到所需的外观。
这应该确保 iOS 10 场景看起来与 iOS 8/9 场景相同。
| 归档时间: |
|
| 查看次数: |
707 次 |
| 最近记录: |