http://blog.csdn.net/leonwei/article/details/41942157

批渲染(Batch)

batch render 是大部分引擎提高渲染效率的方法,基本原理就是通过将一些渲染状态一致的物体合成一个大物体,一次提交给gpu进行绘制,如果不batch的话,就要提交给很多次,这可以显著的节省drawcall,实际上这主要节省了cpu的时间,cpu从提交多次到提交一次,对gpu来说也不用多次切换渲染状态。当然能batch的前提一定是渲染状态一致的一组物体。

Unity3d的批渲染分为两种,动态和静态

静态批

要求:必须使用同一张material,然后在编辑器里设置为static batching的。
特点:静态批是无法运动的。
所以一般制作流程上,对于场景这些静态的物体都采用静态批,美术会根据场景的规模,将相邻的一片物件的贴图合并到一张或几张1024或512的大图上,这样这些物件可以使用同一个material,就可以静态批在一起,大幅节省dc。
静态批的时候Unity3d会在运行时生成一个合并的大模型,并且为这个模型指定一张共同的贴图,所以这个批在一起的数量是有限的,如果批在一起的定点数过多,它就会自动分成两个批,一个静态批的上限我自测大约在60000多个顶点单元。

动态批

动态批是对那些没有标记成static batching的物体在runtime unity自动将他们批在一起,这个是可以支持运动物体的,但是限制较为严格:
1.一个批次总顶点单元少于900
2.批在一起的所有的模型应用同样的缩放值
3.使用相同的材质
4.相同的一张lightmap
5.不能使用多pass的shader
6.不能接收阴影

所以一般是小的运动的模型才比较容易动态批在一起,当然unity又说可能在后续版本放宽这个限制

最新文章

  1. Openstack的web管理端相关
  2. 逆序数 POJ 2299 Ultra-QuickSort
  3. matlab 2012 vs2010混合编程
  4. redis在.NET下的使用
  5. Android - 广播机制和Service
  6. cf500B New Year Permutation
  7. opencv探索之路(十二):感兴趣区域ROI和logo添加技术
  8. inline使用
  9. 如何将两个PDF文件合并到一个页面中
  10. 浅谈 drop、truncate和delete的区别
  11. 设计模式 工厂模式 使用shared_ptr
  12. 个人阅读作业2:结合《No Silver Bullet》谈谈我在软件开发过程的遇到的困难与体会
  13. easyui 功能介绍
  14. Pytorch中的squeeze()和unsqueeze()函数
  15. Spring Boot(十八):使用Spring Boot集成FastDFS
  16. 移植ok6410 LCD驱动
  17. Yearning v1.3.0 发布,Web 端 SQL 审核平台
  18. Graph database_neo4j 底层存储结构分析(2)
  19. STL_iterator返回值
  20. Python学习之路 (二)爬虫(一)

热门文章

  1. CentOS系统时间修改
  2. 《AndroidStudio有用指南》反馈问题和建议
  3. 开源流媒体云视频平台EasyDarwin中EasyCMS服务是如何进行命令转发和消息路由的
  4. JS 怎么把数组类型的参数传递到后台,后台怎么获取
  5. c# winform 根据窗体自动调整控件
  6. Cocos2d-x之CCMenu理解
  7. 常用git命令和工具
  8. delphi2010\delphi XE7 开发及调试WebService 实例
  9. vue 仿今日头条
  10. c++程序书写原则