C

禁用深度测试

本页面描述了在 Qt 3D Studio 中编辑图层的禁用深度测试属性。

可以使用“禁用深度测试”属性同时覆盖深度测试和对象渲染顺序。与系统中许多其他属性的操作相比,这一属性的操作并不那么明显,因此本页面提供了一些关于何时、何地以及为何使用此属性的见解。

它做什么?

默认情况下,“禁用深度测试”属性未勾选(false)。这是正常的工作模式。在此模式下,渲染分为两次进行。首先,读取和写入深度缓冲区被启用,并将所有不透明对象从前到后渲染(靠近相机的对象首先渲染)。在第二次通过中,将禁用写入深度缓冲区,并将所有透明(非不透明)对象从后向前渲染。

第一次通过允许进行标准的 z 剪裁,对于正常的 3D 不透明对象,第二次通过允许正确混合透明对象。

通过勾选“禁用深度测试”属性,将其设置为true,可以为层启用不同的单次渲染模式。在此模式下,根本不使用深度缓冲区,并将所有对象在一个从后向前的单次通过中渲染。

为什么?

这个属性的每个设置都有优点和缺点。

禁用深度测试:false

优点

  • 此模式确保最佳视觉效果,因为双遍渲染技术可以实现重叠或相交 3D 对象的正确渲染,以及透明对象的正确混合。
  • 如果有不透明物体隐藏其他物体,这种模式下的性能可能更高。跳过隐藏在完全不透明物体后面的像素是一种常见的强大 3D 渲染优化,称为 z 剪裁。

缺点

  • 在某些场景中,双遍渲染技术可能更昂贵。

禁用深度测试:true

优点

  • 如果有很少(或没有)物体从 z 剪裁中受益,此模式可以提高性能。在重叠很少的情况下,使用单遍技术进行渲染可能更快。

缺点

  • 在某些场景中,可能会引入或遭受渲染错误,并可能影响性能。当对象相互交错或重叠时,深度测试和双遍渲染技术是必需的,以获得正确的结果。(更多信息,请参阅维基百科上的“绘图算法”。)

结论

图层上的“禁用深度测试”属性是一种高级属性,可以在某些特定情况下提高性能。它可以按图层单独激活以启用单独的单次渲染技术,通过消除在 3D 对象不重叠或相交的情况下进行昂贵深度测试的开销,从而比默认渲染技术获得更高的性能。

应该小心翼翼地启用此属性。尽管在有些图层上启用此属性可以提高性能,但也可能引入不希望的渲染错误,甚至在一些情况下影响性能。在优化时,请务必仔细测量。

在某些 Qt 许可证下可用。
了解详情。