今天查缺补漏发现地形渲染十分耗,以我们要支持最低配置红米1来看,光场景什么都没有只能跑二十来帧。
于是开始定位找问题,发现是地形的渲染占了很大比率,我开始将shader各种修改实现。
(我们是八张地形图,两张控制图来实现地形渲染的,大概150*150米。)
我甚至试了在cg语言中用if else来逻辑减少取样图的次数,但if else的效率在这个地方和取出图片几乎没有任何区别。
反正搞来搞去也就自己将帧数提高到了三十帧出头。
本来想着这样吧,反正最低配置,突然想起以前用的t4m插件,也有类似的实现。
然后就试了一下他们的效果,确实要比我自己搞的效率要高。然后一行一行审阅这个代码,在逻辑实现来说基本和我的一模一样。但他的就可以跑到40多帧。
然后我开始一行行照着他那个改,最后定位到了是辣鸡unity自己原生cg代码的问题。
因为最开始我写这个渲染代码是参照unity terrain的实现方式来做的,所以有几行引用到了类库的代码。
不对比完全看不出来,我也不是专业搞这个的。所以说,理所当然以为没问题的东西最容易拿起来砸自己脚。
好了,最低配也能跑40来帧了,即便把游戏载进去角色待机也可以40多。
接下来就差还是unity的ugui性能效率的坑了。先找专业的咨询吧!专业人了解到的深度,确实不是一般开发所需要掌握的。
以前年轻,总以为什么都能自己搞定,现在想想,还真不服不行。