真Unity3d_场景和模型的优化和压缩(⼊门)
静态批处理和动态批处理
(以下测试前提是在Editor环境,和⼿机环境肯定不同,不过不影响结论的推断)
多的不说了,我们的选择只有2个,不是A就是B,就好像⼀个定理,你如果不是蠢⼈,那么你就是蠢⼈
我们先来看看静态批处理:
- ⽹上很多关于静态批处理的⾔论⼏乎清⼀⾊是“空间换时间”,“省了CPU,但是占内存”
- 但事实真的如此吗
1.没有静态的很多树,可以看到Saved by batching == 0
unity3d入门2.树已经设置为静态, 明显是Saved by batching == 99,(我已经挑了最好⼀帧截图,实际帧率在155~190之间)
静态批处理⾔过其实
结论是:设了静态批处理,确实是可以做到Saved By batching, 但完全没有卵⽤,减少了DrawCall,内存⼀点没变,PASS也没变,静态批处理所减少的Draw Call,只是减少了渲染Shader处理的其中⼀个环节,对整体游戏和渲染影响有限
在单⼀树这种简单情况下,静态批处理根本不可能提⾼帧率
(或者某些特定情况静态批处理可以有其关键作⽤,但连这么简单的环境都不起作⽤,可以果断弃坑,就让⽹上那些⽆知的⼈继续⾃嗨吧)
所以:静态批处理就是⼊门中的⼊门,在实际项⽬组中根本不会⽤到
(其实这⼏年Unity发展很快,很多信息和测试被披露,现在也很少⼈谈到DrawCall和批处理了)
静态批处理不⽤说了,下⼀个⽂章再说说动态批处理
(A不⾏,那 B肯定应该⾏了吧,会好⼀点,可是都不是重点,例如,不是男就是⼥,是不是男的⽐⼥的容易成才?显然不是的,男⼥只是识别⼈的其中⼀个维度,成才的关键并不在于这个维度,明天希望把动态批处理优化说清楚,以及对整个场景优化问题做个总结)
最后,放⼤招,帧率可以直接上到666??
3.直接设为Cast Shadows == off
3.1 同样的树,不是静态。。。。。
原理:减少了Shadow也就是减少了绘制的⾯+绘制步骤,⽽不单单是减少Drawcall,不过这和静态和动态批处理并不属于的同⼀纬度,只是测试好玩,不能完全说明A⽅法就是⽐B⽅法好,或者⽤某⼀种⽅法就是最优解(若这世界有标准答案,那现在还在搞科研的在搞什么??)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论