SceneKit剔除飞机

Chr*_*ris 6 graphics ios scenekit swift

我在SCNView中有一个SCNScene渲染.我有一些在场景中渲染/移动的*.dae模型.

我有一个透明的立方体,当我的一个模型落后于它时,我希望模型不会被渲染,因为此刻,由于立方体是透明的,你可以通过立方体看到它.

是否有任何属性/设置/着色器可以应用于透明立方体,以便它后面的任何东西都不会被渲染?

例:

我的眼睛是绿点,立方体是蓝色方块,我的模型是红色圆圈,然而被立方体隐藏的圆圈部分是紫色......这实际上是不可见的.蓝色方块也是看不见的.

卡尔

这个开发人员有一个遮挡着色器可以满足我的需求,但它是Unity:https://youtu.be/MK3D91kCKzM

亲切的问候

克里斯

mnu*_*ges 16

这是一个解决方案

  1. 多维数据集,使用材料constantlightingModel.这是最便宜的一个.
  2. 此材料将writesToDepthBuffer设置为truecolorBufferWriteMask设置为[](空选项集).这样,立方体将在深度缓冲区中写入,但不会在屏幕上绘制任何内容.
  3. 将多维数据集设置为renderingOrder,-1以便在场景中的任何其他节点之前绘制.这将使多维数据集在任何其他对象之前写入深度缓冲区,从而防止它们在多维数据集后面被绘制.

  • renderingOrder = -1我一直在寻找这个星期.非常感谢! (2认同)