Unity Draw Call 初研究

Posted tianjiuwan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity Draw Call 初研究相关的知识,希望对你有一定的参考价值。

       前言:百度了几个博客讲解unity draw call的文章,不明觉厉,我应该先自己去unity中试试先,不然看着一脸懵B,let‘s go!

       

       一:光照因素(光照可能增加一倍的DC)

       二:material因素(一个mat增加至少一次DC)

       三:mesh顶点数量(cube顶点数:24  sphere顶点数:515 Cylinder顶点数:88)

 

  Test:关闭光照test:(空场景+关闭光照:DC=2)

         T1:1,关闭光照  2,场景中添加 1个cube                                      DC=3;(目测是因为添加了一个mat,所以DC增加1次)

         T2:1,关闭光照  2,场景中添加 2个cube,2cube的mat相同             DC=3;(因为2个cube的mat相同,所以DC增加1次)

         T3:1,关闭光照  2,场景中添加 2个cube,2cube的mat不相同          DC=4;(因为2个cube的mat不相同,所以DC增加2次)

综上三次测试:模型相同,Mat增加一个,DC增加一次

         T4:1,关闭光照  2,场景中添加 2个cube,2cube的mat相同(DC+1) 3,场景中添加 1个sphere,mat相同于cube(DC+1)     DC=4;(2个cube的mat相同,1个sphere的mat相同与cube mat,DC增加2次,所以,跟模型mesh也有关系)

综上四次测试:模型不相同,Mat增加一个,DC增加一次,模型mesh不同,DC增加一次

         T5:1,关闭光照  2,场景中添加 2个cube,2cube的mat相同(DC+1) 3,场景中添加 2个sphere,mat相同于cube(DC+2)     DC=5;(2个cube的mat相同,2个sphere的mat相同与cube mat,DC增加3次,所以,跟模型mesh顶点数量也有关系)

         T6:1,关闭光照  2,场景中添加 2个cube,2cube的mat相同(DC+1) 3,场景中添加 2个sphere,mat相同于cube(DC+2) 4,场景中添加1个Cylinder,mat相同与cube(DC+1)   

                                                                                                                                                                            DC=6;(2个cube的mat相同,2个sphere的mat相同与cube mat,DC增加3次,所以,跟模型mesh顶点数量也有关系)

         T7:1,关闭光照  2,场景中添加 2个cube,2cube的mat相同(DC+1) 3,场景中添加 2个sphere,mat相同于cube(DC+2) 4,场景中添加2个Cylinder,mat相同与cube(DC+1)   

                                                                                                                                                                            DC=6;(2个cube的mat相同,2个sphere的mat相同与cube mat,DC增加3次,所以,跟模型mesh顶点数量也有关系)

综上七次次测试:模型不相同,Mat增加一个,DC增加一次,模型mesh增加一个,DC增加一次,模型mesh顶点超过300,即使使用用过的mat,DC还是会增加一次

     Test:开启光照test:(空场景+开启光照:DC=2)

         T8:1,开启光照  2,场景中添加 1个cube(DC+6)                                      DC=8;

 

以上是关于Unity Draw Call 初研究的主要内容,如果未能解决你的问题,请参考以下文章

[转] Draw Call未被批处理?告诉你在Unity 5.6中如何查找原因 [复制链接]

关于creator label渲染原理和draw call问题

Python Celery初研究

gradle的安装,配置,构建,研究,初体验......(入职一周研究的第一个大知识点)

cocos2dx 大地图分块加载的研究(初)

draw call 优化