我在 SCNView 中有一个 SCNScene 渲染。我有一些 *.dae 模型在场景中渲染/移动。
我有一个透明的立方体,当我的一个模型在它后面时,我希望模型不被渲染,因为此刻,由于立方体是透明的,你可以透过立方体看到它。
是否有任何属性/设置/着色器可以应用到透明立方体,以便不渲染它后面的任何东西?
例子:
我的眼睛是绿点,立方体是蓝色方 block ,我的模型是红色圆圈,然而被立方体隐藏的圆圈部分是紫色的......这实际上是不可见的。蓝色方 block 也将不可见。
这个开发人员有一个遮挡着色器可以满足我的需要,但它是 Unity:https://youtu.be/MK3D91kCKzM
亲切的问候
克里斯
最佳答案
解决方法
- 对于立方体,使用
constant
的 Material 作为其lightingModel
.这是最便宜的。 - 此 Material 将具有
writesToDepthBuffer
设置为true
和colorBufferWriteMask
设置为[]
(空选项集)。这样立方体将写入深度缓冲区,但不会在屏幕上绘制任何内容。 - 设置立方体的
renderingOrder
到-1
以便它在场景中的任何其他节点之前绘制。这将使立方体在任何其他对象之前写入深度缓冲区,防止它们在立方体后面时被绘制。
关于ios - SceneKit 剔除平面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45052772/