我已经使用ARKit开发了具有AR功能的iOS应用程序。我用过this项目。
该应用程序动态使用Collada (.dae)文件,这意味着客户端将Collada文件和所有纹理上传到某个位置,并在this solution的帮助下相应地显示模型。这个应用程序工作得很好,但对于这个应用程序,我们体验到了模型的黑色部分闪烁。
正如你在图片中看到的,地板的大部分应该是完全黑色的(除了一小部分是黑白的)。当我们放大模型(放大模型)时,模型在地板上显示的白点较少(在第一张图片中几乎没有白点,但有时我们可以看到一些)。当我们缩小并缩小模型时,我们在地板和其他地方看到许多白点,这些白点在模型中应该是black.zoomed的,但白点较少。


这个问题有什么解决方案吗?
发布于 2019-12-14 00:10:59
您看到的问题称为Z-fighting。
在给定的模型中,黑色(底部/地板)平面和黑色/白色图案平面非常接近,因此当用户移动得更远时,渲染器无法准确区分哪个平面应该首先显示。
一种解决方案是将平面材质的readsFromDepthBuffer属性设置为false。一旦有了对节点/平面的引用,就可以将属性设置为其材质。
if let geom = node.geometry {
for material in geom.materials {
material.readsFromDepthBuffer = false
}
}https://stackoverflow.com/questions/58701335
复制相似问题