赞
踩
在前面讲了下GPU的几何体和显存宽带方面的优化,这里在谈谈GPU的Light和其他一些优化准则吧!
进入主题:
首先在这里我会简单介绍相机的几种Rendering Path,然后在介绍常用灯光在相机的不同渲染路径的效果!
Rending Path:
Vertex Lit 顶点照明
顶点照明渲染路径通常在一个通道中渲染物体,所有光源的照明都是在物体的顶点上进行计算的,由于所有的光照都是在顶点层级上计算的,此渲染路径不支持大部分的逐像素渲染效果:如,阴影、法线贴图、灯光遮罩、高精度的高光。另外:顶点照明渲染路径是最快的渲染路径并且有最广泛的硬件支持(然而,请记住:它无法工作在游戏机上)。
Forward 正向渲染
在正向渲染中,影响物体的最亮的几个光源使用逐像素光照模式。接下来,最多有4个点光源会以逐顶点渲染的方式被计算。其他光源将以球面调和(Spherical Harmonics)的方式进行计算,球面调和技术计算很快但只能得到近似值。根据以下的规则判断一个光源是否为逐像素光源:
用以下的方法渲染每个物体:
延迟光照是一种当前最高级的能实现光线和阴影保真的渲染路径
延迟光照的优点:
延迟光照的缺点:
当延迟光照生效时,在Unity中发生的渲染过程如下(重点)
不能采用延迟光照技术的带阴影的物体在延迟光照渲染完后使用前向渲染路径处理。
Light:
简单了解了相机的几种渲染方式后,我们来谈谈常用的三种灯光:Directional Liht(平行光),Ponit Light(点光源),Spot Light(聚光灯)。然而他们都具有Light Mode(光照模式),auto,Important,Not Important.第二种和第三种分别是像素光源和不是像素光源,但是在这里要注意的是auto,但当在Edit->Project Setting->Quality中设置的像素光源大于已经使用的像素光源,此时的auto才是像素光源,另外还要注意的是只有平行光应该是逐像素(Important)的,其他所有都应该是逐顶点的,当然,这取决于游戏并且像素光源更耗性能!接下来会详细讲解!
看到没,他完全是按我上面所提到三个过程渲染,当增加一个聚光灯时,如图所示,他使用上一步的缓冲计算出光照结果放入金字塔中缓存,如图所示:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。