我看到一些 ARKit 示例,其中材料 A 阻挡了材料 B,形成了遮挡效果、黑洞或掩模。但是所有这些示例似乎都使用了 Unity 引擎(我可能错了)。我希望能够利用苹果已有的工具来实现这一点,或者使用 Metal Shader。
想知道是否有人知道一个诀窍可以在 ARKit 中进行这个操作,或者以 SceneKit 术语,当两个物体重叠时,想要一个物体遮挡另一个物体,使其空白。这不能是 CSG,因为那将会过于昂贵?
想知道是否有人知道一个诀窍可以在 ARKit 中进行这个操作,或者以 SceneKit 术语,当两个物体重叠时,想要一个物体遮挡另一个物体,使其空白。这不能是 CSG,因为那将会过于昂贵?
.colorBufferWriteMask
实例属性,在渲染材质时写入深度数据。请注意保留HTML标记。sphere.geometry?.firstMaterial?.colorBufferWriteMask = []
然后分配适当的对象渲染顺序:
sphere.renderingOrder = -100
最后,让SceneKit在渲染材质时从/写入深度缓冲区:
sphere.geometry?.firstMaterial?.writesToDepthBuffer = true
sphere.geometry?.firstMaterial?.readsFromDepthBuffer = true
sphere.geometry?.firstMaterial?.isDoubleSided = true