你知道,当有两个平面在同一个位置,不同的颜色时,它们会开始相互对抗,所以有些部分是另一个纹理,还有一些是其他部分。
我认为Scenekit的renderingOrder应该解决这个问题,但我无法让它工作。我为planeOrder和planeB 1提供了planeA 0,但没有发生任何事情。
所以基本上我想让两架飞机处于同一位置,但我想让另一架飞机成为“主力”,以便渲染主力飞机,而不是另一架飞机。
答案 0 :(得分:5)
这通常被称为Z-fighting,并且只要3D存在就一直是3D中的问题。
有两种基本的,而不是理想的方法可以解决这个问题,因为我目前了解你的情况:
1。删除您不想看到的飞机,直到您需要它,可能是当相机绕过另一侧或其他一些条件发生变化时,此时你需要添加你需要的飞机,然后移除另一架飞机。
2。曾经在" Z空间"中稍微分开它们,或者任何有意义的空间将它们推得稍微分开。这可能是一个非常小的数量,如此之小,以至于观众无法察觉到飞机不在完全相同的空间内。
答案 1 :(得分:0)
表示垂直平面的重叠框有类似的问题。
这里有一个解决方案,如果您不使用透明节点,可能会对您有用(我这样做,所以我的问题仍然存在,我会在解决后更新):
使用包含所有平面几何图形的展平节点。您可以使用getTimestamp()
展平所有节点的孩子。每次你添加更多的平面节点时都会变平,即:
flattenedClone()