近年来,许多渲染团队将他们的直接光照阶段放在计算机着色器中,而不是象素着色器,这会使渲染速度更快吗?这是因为异步计算技术将一些计算和光栅操作并行化吗?
发布于 2022-06-17 17:20:56
在延迟呈现中,您有两次传递。几何通道生成材料参数(位置、法线、反照率等),而照明通道则根据影响到该表面点的每个光的材料参数进行照明计算。
当使用图形管道时,通过绘制全屏四角图(由于性能原因而在屏幕上平铺的较小的四角体)或表示影响所涉光线的世界空间区域的球体来“呈现”照明通道。无论哪种方式,这些只是在屏幕的某些部分上执行片段着色器的借口。
使用计算机着色器进行照明传递会产生类似的效果。然而,它也允许您使用计算机着色器的好处。例如,工作组内的调用可以共享数据存储。这对于SSAO技术尤其有用(虽然技术上不是局部照明,但它只使用一组有界的本地数据来进行计算)。工作组可以为所有调用集体加载执行SSAO所需的信息,然后从本地存储读取该数据以完成其工作。
但是,请注意,这并不能保证性能;这只是一件可能有帮助的事情。另外,考虑到移动芯片上基于瓷砖的渲染器在这样的渲染器上会表现得相当糟糕。当所有东西都可以活在平铺内存中时,TBR获得了它们的优势;将它强制到主存,在那里您可以对其执行计算着色操作,这基本上是抛弃了这种性能。
https://stackoverflow.com/questions/72661861
复制相似问题