在之前的项目中,环境光照是一个固定常量,它被用来模拟光的散射。在现实中,光线会以任意方向散射,且强度会发生变化,不应该是固定常量。

一种间接光照的模拟是 环境光遮蔽(Ambient Occlusion),它通过让墙壁褶皱、孔洞等容易被遮挡的地方变暗来近似模拟出间接光照,让画面更加真实:

阅读全文 »

至今为止,我们用的光照都是前向渲染(forward rendering),这是一种直接的渲染物体和光照的方法。对于每个物体,都要计算一次着色和光照,这虽然很容易实现,但性能不怎么好,且让片段着色器跑了许多用不到的信息。

而延迟渲染(Deferred Rendering)就是为了解决这个问题出现的。该方式给了我们很多显著优化多光源场景的选择,允许我们一次渲染成百上千的光源,且帧率可接受。例如下面1847个点光源:

阅读全文 »
0%