乐乐姐给的图形学知识点(终章)

Unity中渲染优化技术

影响性能的因素,CPU负责保证帧率,GPU负责分辨率相关的一些处理

造成游戏性能瓶颈的主要方面

CPU:过多的Draw Call   和   复杂的脚本或者物理模拟

GPU:

顶点处理:过多的顶点,过多的逐顶点计算

片元处理:过多的片元(可能是分辨率造成的,也可能是OverDraw),过多的逐片元计算

宽带:使用了尺寸很大且未压缩的纹理,分辨率过多的帧缓存

 

优化技术:减少drawcall,通过静态批处理和动态批处理方式减少。

动态批处理:每一帧把可以进行批处理的模型网格合并,再把合并后的模型数据传给GPU,然后使用同一个材质对其渲染。

条件限制:1、能进行动态批处理的网格的定点属性规模要小于900,如果包括位置、法线和纹理坐标三个属性,那么其顶点数量                        不能超过300。

                  2、每个对象都要使用同一个缩放尺度。但不是的话,也可以,Unity5以后就没有该限制了。

                  3、使用光照纹理的物体需要小心处理,这些物体需要额外的渲染参数,例如光照纹理上的索引、偏移量等。

                  4、多Pass的shader会中断批处理。在前向渲染中,需要额外的Pass添加更多的光照效果,但这样就不会批处理了。

静态批处理:只在运行开始阶段,把需要进行静态批处理的模型合并到一个新的网格结构中,这意味着这些模型不可以再运行时刻被移动。

 

优化技术:减少处理的顶点数目(Unity从GPU角度看模型,建模从人的角度看模型,所以Unity模型的顶点数往往更多)

顶点数目增多的原因,一个是为了分离纹理坐标,另一个是产生平滑的边界。

几何体优化建议:移除不必要的硬边以及纹理衔接,避免边界平滑和纹理分离。

LOD技术:当一个物体离摄像机很远时,模型上的很多细节是无法察觉到的,所以在远离摄像机时,减少模型的面片数量。

遮挡剔除技术:遍历场景中的所有的物体,构建一个潜在的层级结构,将被遮挡的物体剔除掉。

 

 

优化技术:减少处理的片元数目

控制绘制顺序,通过深度测试,尽可能的从前往后渲染。

小心透明物体,透明物体是从后向前渲染,一定会造成OverDraw。尽量减少窗口中GUI所占的面积,将GUI的绘制和三维场景的绘制交给不同的摄像机,尽量不要让两者互相叠加。

减少实时光照和阴影,

方法1.把光照提前烘培到光照纹理中,然后通过纹理采样得到光照结果。

方法2.使用模拟光源的方法God Ray,该方法并不是真正的光源,通过透明纹理模拟得到。

 

优化技术:节省宽带   减少纹理的大小、利用分辨率缩放

减少纹理大小,最好保证其长宽值是2的整数幂,很多优化策略只有在这时候才能发挥最大效用。

尽可能使用多级渐远纹理技术和纹理压缩。

 

优化技术:减少计算复杂度

Shader中的LOD技术:控制Shader等级,只有Shader的LOD值小于某个设定的值,该Shader才会使用

代码方面的优化:游戏需要计算的对象数<顶点数<像素的数量,所以尽可能把计算放在每个对象或逐顶点上。

 

乐乐姐的书最后还有一个扩展篇,以后更新。。。。。。

 

                  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值