在 SceneKit 中创建玻璃的最佳方法是使用 Phong 着色模型(不是 PBR)。目前 SceneKit 框架中没有 PBR glass,所以你需要使用一个假的。要制作 afake glass
您需要创建SCNMaterial
具有以下属性的 a:
let material = SCNMaterial()
material.lightingModel = .phong
material.diffuse.contents = UIColor(white: 0.2, alpha: 1)
material.diffuse.intensity = 0.9
material.specular.contents = UIColor(white: 1, alpha: 1)
material.specular.intensity = 1.0
material.reflective.contents = UIImage(named: "fileName.png")
material.reflective.intensity = 2.0
material.transparencyMode = .dualLayer
material.fresnelExponent = 2.2
material.isDoubleSided = true
material.blendMode = .alpha
material.shininess = 100
material.transparency.native = 0.7
material.cullMode = .back
.fresnelExponent
属性根据其相对于观察者的角度确定表面中的反射强度。当从浅角度观察材料时,较高的菲涅尔指数会增加反射的可见性。它不是 IOR(菲涅耳折射率)。
由于光线追踪技术,PBR 玻璃或 PBR 水物体在渲染时非常昂贵。

如果您需要对象的部分透明度 - 只需使用transparent
slot inMaterial Inspector
为透明/不透明区域加载黑白蒙版。