Unity3d的批渲染 batch rendering
来源:互联网 发布:安卓移动数据设置 编辑:程序博客网 时间:2024/05/12 01:27
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又说可能在后续版本放宽这个限制
0 0
- Unity3d的批渲染 batch rendering
- Unity3d的批渲染 batch rendering
- Unity3d的批渲染 batch rendering(转载,为了方便自己看,记忆的)
- unity3d渲染路径Rendering Path
- unity3d渲染路径Rendering Path
- unity3d渲染路径Rendering Path
- Unity3d 基于物理渲染Physically-Based Rendering之specular BRDF
- Unity3d 基于物理渲染Physically-Based Rendering之实现
- Unity3d 基于物理渲染Physically-Based Rendering之最终篇
- unity3d Hair real time rendering 真实头发实时渲染
- Unity3d 基于物理渲染Physically-Based Rendering之specular BRDF
- Unity3d 基于物理渲染Physically-Based Rendering之实现
- Unity3d 基于物理渲染Physically-Based Rendering之最终篇
- batch渲染
- 实例渲染Instanced Rendering
- Forward Rendering 正向渲染
- text-rendering文本渲染
- unity3d Human skin real time rendering 真实模拟人皮实时渲染
- hadoop编译C++的openssl链接问题
- js实现下拉框支持添加和删除的方式
- shopex速度优化
- 面试题5:求字符串中回文子串的最大长度
- JSP/Servlet-----JSTL之core标签库
- Unity3d的批渲染 batch rendering
- Cocos2d-x结构学习(十六)CCLayerColor、CCProgressTimer、CCProgressTo、CCSet
- iOS内存管理
- openCV学习(一)
- poj 2349 Arctic Network 最小生成树~~
- 分组表格
- P51第二章第1题(输出x^2的值)
- 第二章 1
- stl源码剖析 详细学习笔记 hashset hashmap