【问题标题】:The Collada 3D model is flashingCollada 3D 模型闪烁
【发布时间】:2019-11-04 21:28:51
【问题描述】:

我已开发 iOS 应用程序以使用 ARKit 来实现 AR 功能。我用过this 项目。

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

正如您在图片中看到的,大部分地板应该是全黑的(除了一小部分是黑白的)。当我们放大模型(使模型变大)时,模型显示的地板上的白点较少(在第一张图片中几乎没有白点,但有时我们可以看到一些)。当我们将模型缩小并缩小时,我们看到地板上有很多白点,其他地方应该是黑色的。[放大模型,白点较少]

这个问题有什么解决办法吗?

【问题讨论】:

    标签: ios scenekit augmented-reality arkit


    【解决方案1】:

    您看到的问题称为Z-fighting

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

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

    if let geom = node.geometry {
        for material in geom.materials {
            material.readsFromDepthBuffer = false
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多