unity中的渲染优化技术

简介: unity中的渲染优化技术

1.CPU

过多的drawCall 使用批处理技术来减少drawCall数目

复杂的脚本或者物理模拟

2.GPU

顶点处理 减少顶点数 优化几何体 使用Lod技术 使用遮挡剔除技术


过多的顶点


过多的逐顶点计算


片元处理


过多的片元


过多的逐片计算


优化方案;


减少需要处理的片元数目


控制绘制顺序


警惕透明问题


减少以实时的关照


4.带宽


使用了尺寸很大且未压缩的纹理


分辨率过高的帧缓存


优化方案:


减少纹理大小


利用分辨率缩放


动态批处理:


多pass回中断批处理


批处理注意事项:


尽可能用静态批处理,但随时要小心内存的消耗,并且经过静态批处理的物体不可以再被移动


如果无法静态,要动态批处理的话,小心上面提到的各种限制,列


静态批处理更占用内存空间


对于游戏里面的金币可以使用动态批处理


对于游戏里的动画,不能使用静态批处理


批处理需要把多个模型变换到世界空间再合并他们,如果shader中存在不一些基于模型空间下的坐标运算,那么往往会得到错误的结果


一个解决方案是使用DisableBatching标签来强制使用shader材质


16.5 减少需要处理的的片元数目减少overdraw


减低GPU瓶颈


overdraw指的是一个像素被绘制了多次


为了避免overdraw,重要的优化策略是控制绘制顺序


深度测试的原因,我们可以保证物体都是从前往后绘制的,就可以最大限度减少overdraw,因为在后面绘制的物体无法通过深度测试,因此不会再进行后面的渲染处理


渲染数目小于2500的对象被认为是不透明物体,绘制顺序是从前往后而其他的是从后往前的,意味着我们尽可能的把物体队列设置为不透明物体,尽量避免使用半透明队列


减少实时光照和阴影

相关文章
|
2月前
|
大数据 API 图形学
Unity优化——批处理的优势
Unity优化——批处理的优势
|
2月前
|
存储 人工智能 Java
Unity优化——脚本优化策略4
Unity优化——脚本优化策略4
|
3月前
|
安全 Java 图形学
Unity3D 导出的apk进行混淆加固、保护与优化原理(防止反编译)
Unity3D 导出的apk进行混淆加固、保护与优化原理(防止反编译)
33 0
|
2月前
|
人工智能 安全 API
Unity优化——加速物理引擎1
Unity优化——加速物理引擎1
|
2月前
|
存储 人工智能 缓存
Unity优化——脚本优化策略3
Unity优化——脚本优化策略3
|
2月前
|
存储 缓存 Java
Unity优化——脚本优化策略2
Unity优化——脚本优化策略2
|
2月前
|
存储 XML 缓存
Unity优化——脚本优化策略1
Unity优化——脚本优化策略1
|
8月前
|
开发框架 Java .NET
《unity游戏优化》第8章内存优化
《unity游戏优化》第8章内存优化
|
4月前
|
安全 Java 图形学
Unity3D 导出的apk进行混淆加固、保护与优化原理(防止反编译)
对于辛辛苦苦完成的apk程序被人轻易的反编译了,那就得不偿失了,这篇文章就是解决Unity打包出来的包进行代码加固和混淆。
|
5月前
|
Java 定位技术 图形学
Unity客户端开发优化要点
Unity客户端开发优化要点