Collada 3D模型正在闪烁

时间:2019-11-04 21:28:51

标签: ios scenekit augmented-reality arkit

我已经开发了iOS应用程序以使用ARKit具有AR功能。我已经使用过this项目。

该应用程序动态处理Collada(.dae)文件,这意味着客户端将Collada文件和所有纹理上传到某处,并且在this solution的帮助下相应地显示了模型。 该应用程序通常运行良好,但是对于这一应用程序,我们体验到模型的黑色部分闪烁。

正如您在图片中看到的,大部分地板应该是完全黑色的(除了一小部分是黑白的)。当我们放大模型(使模型更大)时,模型显示的地板上的白点更少(在第一张图中几乎没有白点,但有时我们可以看到一些)。当我们缩小模型并使模型变小时,我们会在地板上和其他地方看到很多白色斑点,这些地方应该是黑色的。[在模型中用更少的白色斑点进行缩放] ][1][1] zoomed out the model with many white spots on the floor

这个问题有解决方案吗?

1 个答案:

答案 0 :(得分:0)

您看到的问题称为Z-fighting

在给定的模型中,黑色(底部/地板)平面和黑色/白色图案平面非常接近,因此当用户进一步远离渲染器时,渲染器无法准确地区分应首先显示哪个平面。

一种解决方案是将平面材料的readsFromDepthBuffer属性设置为false。 引用节点/平面后,可以将属性设置为其材质。

if let geom = node.geometry {
    for material in geom.materials {
        material.readsFromDepthBuffer = false
    }
}
相关问题