不同光照渲染算法对比
2023-12-20 14:42:01
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的由来。
算法对比
参考资料
文章来源:https://blog.csdn.net/u013929284/article/details/135105868
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!