主页
引擎素材
##Unity完整项目
#Unity角色怪物
#Unity平台拓展
#Unity场景道具
#Unity 着色器
#Unity粒子特效
#Unreal蓝图
#Unreal引擎场景
#Unreal引擎特效
#nreal代码插件
笔刷
#雕刻笔刷
#Procreate笔刷
#Photoshop笔刷
3D素材
#精品成套系列
#中国古风建筑
#欧式古风建筑
#现代建筑
#Q版建筑
#场景道具
#植物花草
#精品成套系列
#中国古风角色
#欧洲古代角色
#Q版卡通角色
#半Q半写实角色
#军事类角色
#现代类角色
#3渲2场景
2D素材
#2D场景图素专区
#2D角色专区
#原画/参考/插画
#手游全套解包
游戏源码
#手游源码
#端游源码
#Unity项目源码
#其他源码
CG软件下载
建模/雕刻
贴图/UV
游戏开发
平面设计
影视编辑
系统应用
其他软件
3D打印
精品成套桌游
动漫游戏手办
工业/家居/教具
Unity专区
场景&道具
完整项目
着色/阴影
纹理材质
编辑器拓展
角色/动画
脚本/功能
声效/BGM
粒子/特效
平台拓展
手游解包
材质库
社区
#交流
#素材使用问题
#素材申请
#站务/公告
#发包接包
登录
注册
用户名
Email
自动登录
找回密码
密码
登录
立即注册
返回列表
其他
在Unity5中减少Draw Call的方法
收藏
点赞
[ 复制链接 ]
本文为大家分享Unity 5中标准着色器的简单概念,并分析如何减少Draw Call(Unity 5中显示为SetPass calls,下文的Draw Call皆表示SetPass calls)。
标准着色器是基于物理的着色器,可以正确渲染各种光照条件下的效果,支持跨平台,拥有可以启用不同功能着色器的纹理字段。
标准着色器会根据纹理字段所选用的纹理改变自身包含的功能,从而控制这个shader的执行速度。如下图,尽管两个材质使用同一个着色器,但仍有区别:
这两个着色器在渲染场景时是完全不同的(尽管都是“标准着色器”),因此如果想减少Draw Call,就要以完全不同的方式来处理这两个着色器。
先介绍通用的减少Draw Call的方法,然后再讲解在Unity 5中使用标准着色器时如何减少Draw Call。
手动减少Draw Call
不论是Unity或其它引擎,减少Draw Call无非就是尽可能少用材质。
所以减少材质基本上有以下几步:
1.按照所用的着色器类型对材质进行分类及整合。
2.将使用同一着色器的材质的纹理合并为纹理集。
3.创建一个材质,让其包含着色器及第二步创建的纹理集。
4.重新对用到该着色器的网格进行纹理映射以匹配纹理集中的纹理坐标。
5.将第三步创建的材质赋给重新编辑后的网格。
第一步,按照所用的着色器类型对材质进行分类及整合
尽量使用最简单的场景来说明,这里只有4个材质,每个材质都使用Bumped Diffuse着色器,如下图:
注意上图的SetPass calls是4。
对于此场景要处理的材质如下图:
第二步,将使用同一着色器的材质的纹理合并为纹理集
这里每个着色器有两张纹理,一张基本纹理和一张Bumped Diffuse要用的法线纹理,所以需要的纹理贴图如下:
将纹理保存到工程以供后续使用:
第三步,创建一个材质,让其包含着色器及第二步创建的纹理集。
创建材质,并设置好两个纹理和着色器(本例是“Bumped Diffuse”)如下图:
第四步,重新对用到该着色器的网格进行纹理映射以匹配纹理集中的纹理坐标。
这一步可在任意3D编辑器中完成(Maya、3D studio 、Max 、Blender 等)。
该步骤比较耗时,需要重新设置网格的UV坐标以对齐到第二步所创建的纹理集中的像素。如下图:
对所有使用同一着色器的网格重复以上步骤。
第五步,将第三步创建的材质赋给重新编辑后的网格。
还要进行以下两个步骤:
用所有重新映射后的网格替换之前的网格,并禁用旧的网格。
将第三步创建的材质赋给重新映射后的网格。
如下图:
运行效果如下图:
回到第一步,优化之前的SetPass calls是4,而优化后减少至1,本例中Draw Call减少了75%。
在Unity 5中使用标准着色器时减少Draw Call
如之前所说,标准着色器会根据所用到的纹理变得更快或更慢,与此同时渲染方式也会不同。所以如果材质的纹理使用同一标准着色器,就可以将材质合并。例如,合并所有只有颜色的网格、合并所有只有Albedo(反射率)纹理的网格等等。按照纹理整合好对象后对于任意着色器都只需进行上面五个步骤进行优化,其中的着色器就是标准着色器的纹理字段。
可以看到Draw Call从91减少至22,约降低了75%,如果尽可能的合并网格效果还可以更好。
在Unity中自动减少Draw Call
本文作者Juan制作了插件Pro Draw Call Optimizer,可以自动根据用到的着色器类型来整合对象,并自动对所有未优化的场景进行“加工”。另外如果场景只用到Diffuse和Bumped Diffuse着色器,还可以使用Juan制作的免费版插件Pro Draw call Optimizer Light。
为了解决广大Unity3D游戏开发爱好者的学费问题,龙图教育特别推出分期付款和先学习后付款的特色优惠,并可以进行试听。入学就签订就业协议,毕业后直接进入校企合作企业进行工作。
温馨提示:如需预约免费试听课程,请将姓名,联系方式,以及预约的课程发送至以下手机、QQ、或微信,如有疑问也可拨打热线电话。报名咨询热线:15112251330 QQ:1358148771 微信:1358148771
作者
1994922
发表于
2016-11-7 11:38:21
回复
举报
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖后跳转到最后一页
楼主
1994922
关注
0
粉丝
3
发布
159
提问
+关注
标签
技术
软件
网络
资源
模型
室内设计
工业设计
博览会
下载地址
resolution
Download
included
combat
horses
解压密码
通用
版权
Movie
Network
Kinect
热门作品推荐
【更新】Easy Save - The Complete Save Da
【更新】All in 1 sprite shader 4.25
【更新】Runtime Editor 4.4.8运行时编辑器
【更新】Dialogue System for Unity 2.2.50
【更新】LoveHate 1.10.50人格模拟器
【更新】Figma Converter for Unity 5.1.1
【更新】Voxelica - Voxel Engine 1.9.9.1
【更新】Powerful Sword Pack(Great Sword
【更新】GUI Pro - Casual Game 4.0.5用户
【更新】Flat Kit Toon Shading and Water