首页 > 解决方案 > 在另一个模型上使用金属着色器后基于物理的光照丢失?

问题描述

我的场景中有 2 个模型(使用 SceneKit)——戒指和钻石。戒指采用黄金 pbr 材料(SCNLightingModelPhysicallyBased) - 其次是钻石,采用金属着色器(SCNProgram)的“自定义”材料。在开发了钻石着色器后,我的金戒指就停止了工作,变成了纯黑色。这是为什么 ?当我简单地将我的戒指设置为黄色并放下 pbr 照明模型时,它可以工作,而不是 pbr - pbr 是纯黑色。我不能将 SCNProgram 与 PBR 一起使用?

金属钻石

标签: scenekitmetal

解决方案


你是在布景lightingEnvironment吗?您将需要场景中的光源来照亮对象。您可以使用点光源或利用基于图像的照明 (IBL),这就是它的lightingEnvironment用途。

您也可以尝试该autoenablesDefaultLighting属性。有了它,SceneKit 将尝试根据其内容在场景中调整和添加光源,但其行为可能会发生变化。


推荐阅读