我有一个3D鲨鱼模型,具有不同的纹理,例如漫反射,法线,粗糙度,金属。当我在场景编辑器中将这些纹理应用于模型时,渲染是完美的,并且阴影属性是Physically Based
。但是,当我在设备上运行该应用程序时,它呈现的效果与场景工具箱编辑器中呈现的效果不同。我还添加了此行,但仍无法按需使用。
let material = SCNMaterial()
material.lightingModel = SCNMaterial.LightingModel.physicallyBased
node.geometry?.firstMaterial = material
我也禁用/启用自动默认照明,但到目前为止没有效果:
the3DScene.autoenablesDefaultLighting = true
当我将阴影属性更改为Phong
时,渲染很好,但不如Physically Based
那么完美,如何解决此问题?
确保metalness.intensity = 1
和roughness.intensity = 0
。有时Scene Graph说谎。
还检查您的metalness
纹理是否包含必须放置的白色部分!
工作代码如下:
let material = SCNMaterial()
material.lightingModel = .physicallyBased
material.metalness.intensity = 1.0
material.roughness.intensity = 0.0
material.reflective.intensity = 0.5
ship.geometry?.materials = [material]