Unity3d的批渲染 batch rendering

批渲染(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又说可能在后续版本放宽这个限制

时间: 2024-10-27 10:48:58

Unity3d的批渲染 batch rendering的相关文章

Thinking in Unity3D:渲染管线中的Rendering Path

笔者在研究和使用Unity3D的过程中,获得了一些Unity3D方面的信息,同时也感叹Unity3D设计之精妙.不得不说,笔者最近几年的引擎研发工作中,早已习惯性的从Unity3D中寻找解决方案. Unity3D虽比不上UE那么老练沉稳,气势磅礴.也比不上CE那样炫丽多姿,盛气凌人.但它的发展势如破竹,早已遍地生花!故而在此记录一些自己的心得体会,供大家参详交流.若有欠妥之处,还望各位及时指正.   Thinking in Unity3D由一系列文章组成,文章列表地址:http://www.cn

Unity3D 的物理渲染和光照模型

为什么地球在两极严寒,而在赤道火热?这个问题,仿佛与着色器毫不相干,但却是理解光照模型怎样工作的基础.正如这个教程前面部分所解释的,表面着色器使 用数学模型来预测光照在三角形上怎样反射.总的来说,Unity 引擎支持两种着色技术,一个是哑光着色器,一个是镜面材料着色器.前一种对于不透明表面的支持很完美,而后一种则用来模拟反射对象.这些光照模型背后的数 学可能非常复杂,但是如果你想创造属于你自己的光照效果,你就得理解它们是如何工作的.直到 Unity 版本 4.x,默认的漫射光照模型都基于朗伯反射

Unity3D shader简介

Unity3D shader简介 可以肯定的说Unity3D使得很多开发者开发游戏更容易.毫无疑问,shader(着色器)编码,仍有很长的路要走.shader是一个专门运行在GPU的程序,经常被神秘包围,它最终绘制3D模型的三角形.如果你想给游戏一个特殊的显示,学习如何编写shader是必要的.Unity3D使用shader做后期处理,对2D游戏也是必不可少的.这个系列的文章将逐步介绍shader编程,并面向几乎没有任何shader知识的开发者. 简介 下图大致表示了在Unity3D渲染流程中发

浅析前端页面渲染机制

作为一个前端开发,最常见的运行环境应该是浏览器吧,为了更好的通过浏览器把优秀的产品带给用户,也为了更好的发展自己的前端职业之路,有必要了解从我们在浏览器地址栏输入网址到看到页面这期间浏览器是如何进行工作的,进而了解如何更好的优化实践,本篇主要围绕这两点展开阐述.前端页面渲染机制可谓是老生常谈,但又很有必要再谈的话题,于是还是决定写一篇,即是对知识的回顾总结,又能与大家分享,何乐而不为.网上相关类型的文章也很多,有兴趣的可以多学习一下. 浏览器 在介绍浏览器工作流程之前,先了解一下主流浏览器的基础

[Unity3d]Player Settings导出设置

Player Settings is where you define various parameters (platform specific) for the final game that you will build in Unity. Some of these values for example are used in the Resolution Dialog that launches when you open a standalone game, others are u

猫都能学会的Unity3D Shader入门指南(一)

动机 自己使用Unity3D也有一段时间了,但是很多时候是流于表面,更多地是把这个引擎简单地用作脚本控制,而对更深入一些的层次几乎没有了解.虽然说Unity引擎设计的初衷就是创建简单的不需要开发者操心的谁都能用的3D引擎,但是只是肤浅的使用,可能是无法达到随心所欲的境地的,因此,这种状况必须改变!从哪里开始呢,貌似有句话叫做会写Shader的都是高手,于是,想大概看看从Shader开始能不能使自己到达的层次能再深入一些吧,再于是,有了这个系列(希望我能坚持写完它,虽然应该会拖个半年左右). Un

ExtJS 4.1 更新

原文:http://www.sencha.com/blog/ext-js-4-1-update/ 译:frank / sp42 转载请保留本页信息. 今年八月,我们曾对 Ext JS 4.1做了博客预览.我们说道,新版将集中在性能和文档方面的改进,同时也说过,预计在"9月中旬至下旬"那段时间内交付.然而比较失望的是,我们没有按期提交.在这次机会中,我想交待这方面的原因,作一次说明. Ext JS 4.0 于 IE7/8 的性能挑战 我们期待 ExtJS4.1的目标是真正加速在陈旧浏览器

了解网页浏览器主流四大内核

"浏览器内核"主要指渲染引擎(Rendering Engine),负责解析网页语法(如HTML.JavaScript)并渲染.展示网页.因此,所谓的浏览器内核通常也就是指浏览器所采用的渲染引擎, 渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息.不同的浏览器内核对网页编写语法的解析也有所不同,因此同一网页在不同的内核浏览器里的渲 染.展示效果也可能不同. 浏览器内核种类繁多,商用的加上非商业的免费内核,大约会超过10款,我们今天重点看一下目前主流的四大浏览器内核Trident.

流式大数据实时处理技术、平台及应用

摘要:大数据处理系统根据其时效性可分为批式大数据和流式大数据两类.上述两类系统均无法满足"事中"感知查询分析处理模式的需求.为此,从分析大数据应用场景入手,提出了"流立方"流式大数据实时处理技术和平台,在完整大数据集上实现了低迟滞.高实时的即席查询分析.目前基于"流立方"平台开发的业务系统已应用到金融风控反欺诈.机器防御等领域,具有广阔的应用前景. 1.引言 大数据技术的广泛应用使其成为引领众多行业技术进步.促进效益增长的关键支撑技术.根据数据处