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

通过正向渲染,着色器可以处理的片段数量可以继续运行会很快变得不堪重负,但是在延迟渲染的情况下,成本通常或多或少是恒定的,具体取决于分辨率,而我们早就通过了这样一个点,即大多数阴影或后处理效果可以实时完成1080p。

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

评论

1080p是新的像素艺术。

#1 楼

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

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

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

(另外:不考虑控制台,移动设备,VR和桌面设备) -可以买到的最新,最大的GPU。即使您所有的Tris消失在顶级GPU的缝隙中,您也可能不是主要目标。 br />

评论


$ \ begingroup $
什么时候使用顶点着色器使网格变形? (我认为这是可能的...我是图形编程的新手)
$ \ endgroup $
–拉马吉登
2015年11月24日,下午3:21

$ \ begingroup $
另外,您是否有关于GPU支持的遮挡剔除的论文?它是现代GPU的内置功能,还是..?
$ \ endgroup $
–拉马吉登
15年11月24日在4:54

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

$ \ begingroup $
哦,我是说剔除会变形的网格物体呢?运行顶点着色器后是否将它们剔除?听起来令人费解。
$ \ endgroup $
–拉马吉登
15年11月24日在10:01

$ \ begingroup $
@Llamageddon通常,您只是将它们剔除成保守的量。或随网格变形的几个较小的体积(例如,在蒙皮时,可以将剔除体积附加到关节上)。
$ \ endgroup $
– John Calsbeek
15年11月24日在16:43

#2 楼

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