首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SceneKit:如何在不禁用iOS 10的情况下再现iOS 10上的iOS 9照明颜色效果(一个方向,一个环境)?

SceneKit:如何在不禁用iOS 10的情况下再现iOS 10上的iOS 9照明颜色效果(一个方向,一个环境)?
EN

Stack Overflow用户
提问于 2016-09-16 00:11:31
回答 2查看 905关注 0票数 5

就像这条线在苹果论坛上提到,iOS 10上的灯光现在变弱了,改变了场景的外观。

线程建议将SCNDisableLinearSpaceRendering设置为YES,但这不起作用。换句话说,使用SCNDisableLinearSpaceRendering不会使您在iOS 10上的场景与iOS 9上的场景相同--至少在我们的测试中不会这样。

我们还努力:

代码语言:javascript
运行
复制
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 (在用户设备上运行):

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-26 06:43:34

这是现场工具包中的一个已确认的bug。我们在中以Bug编号28459280提交了一份报告。问题是金属总是在locksAmbientWithDiffuse 10上将iOS设置为true

根据场景工具包工程师之一,解决方法是手动将locksAmbientWithDiffuse设置为所讨论节点的true (在本例中为楼层节点),然后调整iOS 8/9上的照明,直到达到所需的外观。

这应该确保iOS 10场景看起来与iOS 8/9场景相同。

票数 0
EN

Stack Overflow用户

发布于 2016-09-23 05:29:09

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

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

代码语言:javascript
运行
复制
for(SCNMaterial * mt in model.geometry.materials)
    mt.lightingModelName = SCNLightingModelBlinn;

然而,通过这样做,您将无法利用PBR。如果您想继续使用PBR,那么您可以使用intensitytemperature属性SCNLight来获得不同的结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39522086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档