使用现代填充率和延迟渲染,咬合剔除是否仍然有意义?


10

例如,虽然它是当前最先进的GPU,但GTX 980的惊人填充率为72.1千兆像素/秒,它具有从后到前的渲染和/或Z缓冲区检查,看起来几乎是荒谬的,甚至可能4k分辨率。就多边形数量而言,如果正确地批处理和/或实例化它们,现代GPU可以无数个地处理成千上万个纹理三角形。

使用正向渲染时,着色器将要运行的片段数量可能很快变得不堪重负,但是如果使用延迟渲染,则根据分辨率的不同,代价通常或多或少是恒定的,并且我们早就通过了大多数着色或后期处理效果可以1080p实时完成。

无论哪种方式,当今的限制因素最常见的是绘制调用次数,并且着色成本(通过适当的延迟渲染和几何体批处理将着色成本都保持在较低水平),因此请记住,这不仅是去除背面和超出范围,截锥体的多边形有什么实质性的好处?成本(CPU / GPU时间,程序员时间)是否会在很多时候超过收益?


1080p是新的像素艺术。
Jessy

Answers:


9

是的,遮挡剔除仍然值得。

至少,由于剔除而跳过的绘制调用是不必运行顶点着色器的绘制调用。三角形数量随着GPU开始支持更多三角形而迅速增加,因为为什么不呢?统一架构,顶点着色器使用完全相同的硬件像素着色器做的,所以每个顶点你因为扑杀的跳跃是对的东西,你更多的计算时间可以看到。更不用说您要跳过的所有其他内容(CPU绘制调用处理,并通过管道将Tris抛到足够远的位置,以使光栅化器意识到不需要对其进行着色)。

两家育碧工作室在SIGGRAPH 2015上做了精彩的演讲,介绍了GPU驱动的渲染管道。从表面上看,它涉及您提到的一些内容:批处理和实例化,减少绘制调用次数。但是,它们从GPU驱动的管道中获得的主要优势之一是难以置信的细粒度遮挡剔除:比通常在绘图调用级别看到的更好的剔除剔除。这一切都是在渐近地接近目标的过程中:仅处理您可以看到的内容,这意味着您可以看到的内容看起来更好。

(另外:考虑在控制台,移动设备,VR和台式机上没有钱可以买到的最新,最大的GPU。即使您所有的三脚架都消失了,在线GPU,您可能不是主要目标。)


当使用顶点着色器使网格变形时该怎么办?(我认为这是可能的……我是图形编程的新手)
Llamageddon

另外,您是否有任何有关GPU支持的遮挡剔除的论文?它是现代GPU的内置功能,还是..?
Llamageddon

@Llamageddon在现代GPU架构上,顶点着色器始终运行,并且完全能够变形网格-只是非刚性地转换顶点。当然,更昂贵的顶点着色器会执行更多工作,因此会淘汰更多的工作。我没有有关GPU遮挡剔除的任何论文,学术界似乎对此并不十分着迷。它不是GPU的内置功能,只是对计算的创造性使用。
John Calsbeek

哦,我的意思是剔除将变形的网格物体?运行顶点着色器后是否将它们剔除?听起来很混乱。
Llamageddon

@Llamageddon通常,您只是将它们剔除成保守的量。或随网格变形的几个较小的体积(例如,在蒙皮时,可以将剔除体积附加到关节上)。
John Calsbeek

2

需要多少剔除取决于游戏风格。例如,第一人称射击游戏从中受益匪浅,可以随时在平截头体中放很多东西,而俯视图RTS则不然,因为您实际上是在看着飞机上的东西。即使在RTS中,执行“仅深度渲染”以消除过度绘制仍然很有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.