Mesh Baker的基本操作与功能演示
原地址:http://www.narkii.com/club/thread-301789-1.html
如何降低游戏在系统中的消耗并带给用户最佳的体验是开发者一直追求的目标,在Unity里面对于模型与贴图优化的方式已经提供了不少工具,而在某些地方仍需借由外部的插件才能得到更为理想的效果。在本教程里,我们将介绍一个材质烘培类型的插件- Mesh Baker,通过这个插件的优化之后可降低大量贴图对系统的消耗,进而达到快速提升游戏的效能!
首先,我们看看房屋模型在max里面的情况,如图所示,这是一组由多个网格物件所组成的房屋,并且在每一个网格面上都设置了几种以上的材质,其中包含了颜色与贴图。以房屋模型里面的一个墙面网格为例,在这个模型的墙与柱面分别设置了不同的贴图,以及旁边破损的部分加起来总共有数种材质。
<ignore_js_op>
<ignore_js_op>
在max里面制作多层贴图通常会使用Multi-Sub Object的材质属性,如图所示,每一个ID代表了一种材质的设置,所以从数字上看来在这个模型上面总共有七种材质。
<ignore_js_op>
将模型导入Unity后,在Materails的列表里面可以看到网格模型的材质对应到Multi-Sub Object的ID。
<ignore_js_op>
经过Mesh Baker的贴图烘培后,从外观看起来的模型并没有任何的改变,如图所示,左边是原来的模型,而右边则是Mesh Baker使用贴图烘培出来的结果。
<ignore_js_op>
我们来看看Mesh Baker烘培出来的模型材质,原来的七种材质已经合并成一张完整的贴图了,如此一来将可以大幅的降低贴图对于系统的消耗。
<ignore_js_op>
接下来,我们用一个模型来说明Mesh Baker的操作流程,Mesh Baker插件的下载位置如下:http://www.narkii.com/club/thread-295672-1.html
<ignore_js_op>
安装Mesh Baker后,可以在GameObject > Create Other > Mesh Baker里面找到三个主要的烘培功能,在一般情况下选择Mesh And Material Baker即可处理大多数的模型,其他两个功能分别是多网格物件的材质的烘培(Multi-mesh Anb Material Baker)与材质烘培(Material Baker)。
<ignore_js_op>
选择Mesh And Material Baker,在Hierarchy面板里面会产生一个MeshBaker0的组件,如图所示:
<ignore_js_op>
然后我们来看看是那些模型需要进行烘培,需要做的处理是将场景里面的几个模型合并成一个,并且能共用同一张贴图。
<ignore_js_op>
首先,按下Create Empty Assets For Combined Material保存一个材质烘培后的存档文件,如图所示,我们使用了一个building的文件名来作为Mesh Baker的烘培文件。
<ignore_js_op>
在Object To Be Combined > Size 的栏位里面输入5,表示有5个物件需要进行烘培,接下来的动作很简单,只需要将模型添加进来即可。设置好烘培的模型后,按下Bake Materials to Combined Material,意思就是将所有的材质烘培成一个材质的作用,然后系统就会开始进行运算。
<ignore_js_op>
运算完成后,将烘培好的材质添加到Material Bake Result,表示模型将会以这个烘培后的材质来重新进行贴图的指定。
<ignore_js_op>
<ignore_js_op>
如图所示,Shaders里面所列出的即是合并的材质。
<ignore_js_op>
接下来的动作很简单了,直接按下Object To Be Combined 里面的Bake执行物件的烘培,计算完成后在Hierarchy面板里多出了一个CombinedMesh-MeshBaker0的物件,这个就是烘培后产生的另一个物件。
<ignore_js_op>
<ignore_js_op>
将这个烘培物件移到旁边对比一下,如图所示,左边是原来的模型,右边则是烘培出来的物件,从外观上看来两者并没有任何的差异。
<ignore_js_op>
如图所示,我们可以从材质列表里面来做个比对,原来的一个模型里面有多种材质与贴图,而经过烘培后的物件则是合并成为一个材质。
<ignore_js_op>
<ignore_js_op>
点选贴图看看,很惊奇的发现原来的多张贴图已经自动的并成了一张,如此将可以大幅的减低贴图所带来的消耗,这就是Mesh Baker在优化功能上的一大优势。
<ignore_js_op>
Mesh Baker的基本操作与功能演示的更多相关文章
- Angularjs,WebAPI 搭建一个简易权限管理系统 —— 基本功能演示(二)
目录 前言 Angularjs名词与概念 Angularjs 基本功能演示 系统业务与实现 WebAPI项目主体结构 Angularjs 前端主体结构 基本功能演示(二) 非常抱歉这个月实在太忙,一直 ...
- [视频]K8飞刀 exploit管理功能 演示教程
[视频]K8飞刀 exp管理功能 演示教程 链接: https://pan.baidu.com/s/1rYb3rh4od3j07TZAAq_smw 提取码: kksa
- string类的常用功能演示
这个程序可用随着我对string的用法的增多而有调整. /* 功能说明: string类的常用功能演示. 实现方式: 主要是演示string的常用函数的用法和它与字符数组的区别与联系 限制条件或者存在 ...
- Spring 核心功能演示
Spring 核心功能演示 Spring Framework 简称 Spring,是 Java 开发中最常用的框架,地位仅次于 Java API,就连近几年比较流行的微服务框架 SpringBoot, ...
- 网关Ocelot功能演示完结,久等了~~~
前言 关于网关(Ocelot)的分享,还遗留一些功能没演示呢,接着来聊聊:这次重点针对网关Ocelot使用缓存.集成Polly做服务治理.集成IdentityServer4做认证授权来详细说说:如果对 ...
- Nginx实战部署常用功能演示(超详细版),绝对给力~~~
前言 上次分享了一些开发过程中常用的功能,但如果到真实环境中,其实还需要一些额外的配置,比如说跨域.缓存.配置SSL证书.高可用等,老规矩,还是挑几个平时比较常用的进行演示分享.上篇详见Nginx超详 ...
- 【九】Kubernetes 之 Service 概念图文讲解及功能演示
Service 概念 Kubernetes Service 定义了这样一种抽象:逻辑上的一组 Pod,一种可以访问它们的策略 -- 通常称为微服务. Service 通常是通过 Label Selec ...
- Web Api其中的PUT功能演示
Insus.NET这几天均在学习Web API知识,并练习.怎样获取数据,提交数据或是保存数据.你可以温习一下<Post model至Web Api创建或是保存数据>http://www. ...
- EditText使用详解-包含很多教程上看不到的功能演示
写道 标题有点大,说是详解,其实就是对EditText的一些常用功能的介绍,包括密码框,电话框,空白提示文字等等的讲解,尽量的介绍详细一点,也就是所谓的详解了..呵呵 广告一下我的应用“我团”,最新1 ...
随机推荐
- Cocos移植到Android-Android.mk编译文件
我们在上一篇博客中年使用的cocos工具对于C和C++源代码进行编译.事实上cocos工具读取<游戏工程目录>\proj.android\jni\目录中的Android.mk文件,进行交叉 ...
- Quartz 第二课 Jobs and Triggers(官方文档翻译)
The Quartz API IScheduler—与scheduler交互的主要的接口 IJob—这个接口主要定义scheduler执行内容 IJobDetail—用于定义Jobs实例 ITrigg ...
- 关键字 explicit
C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色. 1 是个构造器 ,2 是个默认且隐含的类型转换操作符. 所以, 有时候在我们写下如 AAA ...
- Bugzilla+MySql+IIS+ActivePerl搭建指南
头在忙着他的技术研究,对团队建设.测试管理.流程规范都不怎么理会,眼见着产品进入后期整合阶段,在测试过错中出现很多Bug,单靠着我一个人用txt来收集整理bug需求,然后整理成word,放在svn上面 ...
- [转]mysql-5.6.17-win32免安装版配置
1. 下载mysql-5.6.17-win32:官网下载地址百度 2. 解压到自定义目录,我这里演示的是D:\wamp\mysql\ 3. 复制根目录下的my-default.ini,改名为my.in ...
- HTML5之缓存
----- 缓存文件 - 使用UTF-8编码- 以Cache Manifest 开头- 三个基本部分 CACHE MANIFESTmenu.htmlmenu.js# login requires ne ...
- <script type="text/html"></script> js模版使用
<div></div> <script type="text/html" id="javascript_template"> ...
- html5实现渐变效果
<canvas id='test01'></canvas> <script> function draw25(id) { var canvas = document ...
- jquery checkBox的问题
在新版的jquery中选择ckeckbox最好使用prop方法,否则会出现一些问题.比如手动点击取消,再使用代码全选或者反选时候就不好使啦!!!
- [Oracle]Oracle学习小结(1)
1.查看Oracle数据库中的所有用户: (1)使用具有DBA权限的账户登录数据库: (2)执行select username from dba_users. SQL> conn sys 输入口 ...