前向渲染的作用和意义
- 前向渲染的作用:处理多光源的渲染,多光源渲染在unity 有2中渲染方式 前向渲染和延时渲染 .延时渲染主要用于主机,PC平台,不在本次讨论范围.主要来研究前向渲染
- 前向渲染的性能开销和场景中的灯光数量成反比.特别是像素光的数量
场景内有多个灯光,如何渲染每个灯光对物体的影响
unity 灯光渲染的3种渲染模式
1: 逐像素渲染
计算三角形内部的每个像素像素收到的光照.渲染细腻,效果最好,但同时也最消耗性能
2: 逐顶点渲染
计算三角形每个顶点的光照,顶点之间做插值(光栅化)运算,从而得到了三角形各内像素点的颜色,
与逐像素渲染比较,只需要少量计算即可,因 此性能很高,效果较差.(渲染管线先确定三角形顶点,
再光栅化,由于顶点数量少于三角形覆盖面积的像素数量,那么必然导致pass中的执行次数减少。)
3: 球谐函数(球谐光照)
4: 各种渲染方式的性能对比
时时灯光下,如何优化渲染开销,保持帧率平稳,切兼顾渲染效果了: 摄像机视野内(后面检测视野),有N个灯光,如下图,我们设置了4,永远是视野内最亮的4个灯光采用逐像素渲染,剩余灯光中4个灯光采用逐顶点渲染,其余所有灯光采用球谐渲染 一般在移动端项目中,我们设置一个灯光是逐像素渲染的,这个灯光一般师场景中的主光源(平行光),因为平行光性能开销最小.unity 所有灯光类型的开销情况Point(聚光灯) >Area(区域光/点光源) >Directional(平行光) 未完待续
|