gpt4 book ai didi

performance - OpenGL - 不绘制完全遮挡的多边形?

转载 作者:行者123 更新时间:2023-12-04 03:01:01 25 4
gpt4 key购买 nike

假设我们有一组多边形,可以改变相机视角并且可以在 3D 环境中平移相机。从某些视角看,其中一些多边形是 完全被一个或几个其他多边形遮挡。对于每个绘制的帧,我们知道这些多边形中的每一个的确切坐标,并且可以以“增加到相机的距离”或“减少到相机的距离”的顺序遍历它们。

现在我的问题:

什么是预渲染确定多边形是否被其他多边形完全遮挡的有效方法,以便我们可以在绘图过程中简单地跳过它以提高性能?

最佳答案

您正在寻找的技术称为 Occlusion Culling并且是一项相当复杂的任务。

能够以增加的相机距离顺序(从前到后)迭代它们为您提供了一些优势。以这种方式渲染它们可以让您从当今图形硬件的早期 z-testing 功能中受益,多边形只需经过顶点处理和光栅化,而无需进行片段着色。这也可以在不排序多边形的情况下实现,而是在所谓的深度预传递中渲染它们(以任意顺序),在其中禁用颜色写入并仅渲染多边形的深度值。现在在下一个渲染 channel (真实的)中,您还可以从早期的 z-rejection 中获益。

您还可以使用当今 GPU 的硬件遮挡查询,如 this GPU Gems article 中所述。 .

但正如 Hannesh 所说,如果遮挡剔除的开销值得,它应该始终被加权。我认为您的案例中的从前到后排序并不是凭空而来的。也许深度预 channel 是一种不需要排序的可行替代方案。虽然您可以以不需要任何排序的方式(如链接中所述)使用遮挡查询,但在这种情况下,它不如使用前后排序有效。

关于performance - OpenGL - 不绘制完全遮挡的多边形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7625926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com