【unity学习笔记】unity优化DrawCall 及动态批处理的约束
来源:互联网 发布:大数据的优缺点 编辑:程序博客网 时间:2024/06/06 13:00
参考自《Unity3D脚本编程》-陈嘉栋
DrawCall优化方案:
(1)使用Draw Call Batching,也就是描绘调用批处理。Unity3D再多次运行时可以将一些物体进行合并,从而用一个描绘来渲染他们。
(2)通过把纹理打包成图集尽量减少材质的使用。
(3)尽量少的使用反光、阴影之类的效果,因为那会使物体多次渲染。
批处理分为静态批处理和动态批处理。
动态批处理相对静态批处理有许多约束条件:
(1)批处理动态物体需要在每个顶点进行一定的开销,所以动态批处理仅支持小于900顶点的网格物体。
(2)如果着色器使用顶点位置、法线和UV值三种属性,那么只能批处理300顶点以下的物体;如果着色器需要使用顶点位置、法线、UV0、UV1和切向量,那只能批处理180顶点以下的物体。
(3)不要使用缩放。分别拥有缩放大小(1,1,1)和(2,2,2)的两个物体将不会进行批处理。
(4)统一缩放的物体不会与非统一缩放的进行批处理。
(5)使用缩放尺度(1,1,1)和(1,2,1)的两个物体将不会进行批处理,但是使用缩放尺度(1,2,1)和(1,3,1)的两个物体将可以进行批处理。
(6)使用不同材质的实例化物体(instance)将会导致批处理失败。
(7)拥有lightmap的物体含有额外(隐藏)得材质属性,例如lightmap的偏移和缩放系数等,所以,拥有lightmap的物体将不会进行批处理(除非他们指向lightmap的同一部分)。
(8)多通道的shader会妨碍批处理操作。比如几乎Unity3D中所有的着色器在前向渲染中都支持多个光源,并为他们有效的开辟多个通道。
(9)预设体的实例会自动地使用相同的网格模型和材质。
- 【unity学习笔记】unity优化DrawCall 及动态批处理的约束
- [Unity优化]减少DrawCall:批处理
- [Unity优化]减少DrawCall:批处理
- [Unity优化]减少DrawCall:批处理
- unity优化DrawCall
- unity优化DrawCall
- Unity DrawCall优化
- Unity Drawcall 优化
- Unity优化----drawcall系列
- Unity 特效drawcall优化
- Unity笔记5-DrawCall
- Unity UGUI的DrawCall优化(一)
- Unity Shader 学习笔记(1) DrawCall
- Unity的DrawCall
- UNITY的drawcall计算
- Unity优化之减少Drawcall
- Unity性能优化之DrawCall
- Unity之DrawCall优化感想
- 树与二叉树
- 解决utunbu无法在线播放音乐的问题
- 按学生成绩进行升序排列
- Highcharts简介
- Eclipse+Pydev插件安装搭建Python开发环境 没有配置好,会报错Project interpreter not specified
- 【unity学习笔记】unity优化DrawCall 及动态批处理的约束
- 异步请求时,JSON.stringify()导致data参数中加号(+)丢失
- Crash加载ramdump报cpu_possible_mask异常问题
- Java例4.5电视节目
- 喵哈哈村的嘟嘟熊魔法(四)(set+对组)
- 1078. Hashing (25)
- http并发,操作系统如何识别对应的进程,线程请求
- canvas五角星(五星红旗)绘制
- [Unity优化]Unity Android Profiler