不同光照渲染算法对比

发布时间:2023年12月20日

Forward Rendering

最常见的渲染,所谓的前向渲染,就是将物件串成一个队列,一个接一个的进行渲染。可以以光源为主循环也可以物体为主循环。

缺点是当物体或光源较多时效率低下,且会有比较多的重复计算。

Deferred Rendering

将渲染分为两个阶段,第一阶段处理光照计算需要的数据,并将他们储存到GBuffer中,这些数据包括片元位置、漫反射贴图,法线贴图,镜面反射强度图等。

其优点是物体和光源较多时效率高,缺点是需要的带宽较大,不适用MSAA,难以处理透明混合。

Tiled Deferred Shading

由于带宽限制,移动端很难实现常规的延迟渲染,一种解决办法是将屏幕划分为多个区域,分别进行渲染。

Tiled Fowrad Rendering

将屏幕空间划分为多块,对每个光源计算它能覆盖的范围,如果对某块屏幕区域无影响则将其剔除。

Clustered Forward Rendering

Forward+是在屏幕空间中划分Tile进行光源过滤来降低消耗的,这个划分是在XY 2D平面进行的,而Clustered Forward Rendering则是在这个基础上更进一步,在Depth方向上也同样进行一次划分,进一步缩小光照的影响范围,降低光照计算的浪费。因为划分的结果是3D的Frustum,每个Frustum被称为一个Cluster,这就是Cluster的由来。

算法对比

image.png

参考资料

  1. 常见渲染管线整理与总结
文章来源:https://blog.csdn.net/u013929284/article/details/135105868
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。