【发布时间】:2021-01-11 09:24:26
【问题描述】:
如果是前向渲染,那么FS执行的次数是(numberOfAllPixels * numberOfLights),如果是延迟渲染,那么FS执行的次数是(numberOfVisiblePixels * numberOfLights)。
所以如果我在前向渲染中加入early-z,那么FS执行的次数也变成了(numberOfVisiblePixels * numberOfLights),那么延迟渲染没有任何优势吗?
【问题讨论】:
-
您所说的“numberOfAllPixels”实际上是在渲染过程中生成的片段数,而“numberOfVisiblePixels”只是帧缓冲区的像素数。但是“如果是延迟渲染,那么 FS 执行的次数就是 (numberOfVisiblePixels * numberOfLights)”。是一个错误的假设。延迟的一个要点是使用一些光体积几何体仅在可以产生任何效果的地方渲染光。如果你有很多灯都会影响整个屏幕,那么延迟会因带宽使用而杀死你,而不是向前过度绘制。
标签: opengl graphics render vulkan