我想列举那些一般的基本情况,在这种情况下,多遍渲染成为不可避免的必然,而不是将所有内容保存在同一个着色器程序中。这是我到目前为止所提出的。
我从上面的(天真的)推论中注意到,顶点和几何着色器似乎并没有真正进入延迟渲染的图像,因此通常可能在第一遍中完成;对我而言,这似乎是明智的,但无论是对细节的肯定还是否定,都会引起人们的兴趣。
P.S。我打算把这个问题留下来收集好答案,所以不要指望快速获胜!
答案 0 :(得分:1)
好主题。对我来说,因为我是一个初学者,我会说在你使用前向渲染时得到的像素/片段着色器中避免不必要的计算。 使用正向渲染时,即使像素颜色没有受到影响,您也必须为场景中的每个灯光进行传递。 但这只是前向渲染和延迟渲染之间的比较。
与将所有内容保存在同一个着色器程序中相反,我能想到的最简单的事情是,您不能限制在场景中使用N个灯,因为在例如GLSL中您可以使用单独的灯或将它们存储在一个统一的阵列中。然后你也可以使用前向渲染,但如果你的场景中有很多灯光,那么前向渲染会有一个太昂贵的像素/片段着色器。 这就是我真正知道的所以我也希望听到其他理论。
答案 1 :(得分:0)
当需要深度缓冲区的结果(通过渲染基本几何图形生成)时使用延迟/多遍方法,以便基于深度产生复杂的像素/片段阴影效果,例如:
还有应用逻辑: