[david]unity3d绘制调用批处理(draw call batching)

要绘制一个gameobject到屏幕上,unity需要调用图像api(dx,opengl)。
图像api对每一个绘制请求都需要做大量的工作,例如输入资源校验,顶点空间信息转换。
特别是在切换不同材质球的时候,图形api要做的工作更多,因为要 切换状态(透明,不透明,贴图输入,渲染方式,加载shader,调用gpu驱动api前,获取/组织/封装输入参数)。
而图形api(dx,opengl)是在cpu上运行的,所以draw call的调用会增加cpu负载,消耗cpu时间
(unity--draw call-->dx/opengl  || CPU  ||  -->显卡驱动|| GPU ||);

优化思路: 减少draw call 数量,减少状态切换
                每个mesh,每个材质,每个pass 都会产生一个draw call调用。
                所以,最有效的方法是合并mesh来减少draw call数量。
                unity有内置(好处:引擎代码层面可以独立控制每个物体)的两种合并mesh技术:
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值