unity mesh baker(游戏场景优化插件)

模型+灯光测试结果:

执行之前使用的Draw Calls和内存

执行之后使用的Draw Calls和内存

?模型合并规则:

1、非同样的静态模型才需要合并 同样模型(复制的)不用合并

2、UV无重复的模型可用Mesh Baker合并 重复的Mesh Baker会出错 有需要可以在制作软件里合并

3、使用同样材质模型可以合并 使用不同材质的模型不能合并

4、合并模型贴图大小必须为2的N次幂 需选择合适大小以免浪费空间或效果不理想 不要通过贴图设置另外更改大小

灯光烘焙优化场景效果和资源方法:

1、所有相同物体使用相同材质并使用一个Scale

2、所有能合并的同样节点的模型或者共用材质的模型一律合并

3、所有重复使用的模型 顶点上限为900除以贴图张数

4、Occlusion Bake需要根据模型大小来自定义尺寸以免效果不好或浪费时间

5、烘焙时候把环境灯光关闭 把烘焙灯光打开确认范围 根据需要开启或关闭全局照明(GI)如关闭GI则只烘焙AO 把阴影和烘焙灯光做成Lighting Data(多物体多灯光情况下 烘焙AO速度比烘焙GI快N倍)

6、打开环境灯光(如在移动设备上运行只能使用一盏主光)隐藏或者删除烘焙灯光如没有动态模型需要实时计算光影的话最好关闭shadow

其他注意:

1、移动设备上尽量少使用景深、反射、雾效等功能严重影响运行速度

2、移动设备上尽量少使用自定义shader 容易出现未知错误

3、移动设备上使用Light Probe、 Reflection Probe无效

具体操作步骤:

建模步骤:

1、顶点数尽量少 使用贴图来表现物体细节(Color、AO、Normal等)

2、整个场景所有模型的UV单元格大小基本一致

3、节点数量一样的模型(复制的)使用同一个材质

4、一个组合的模型(如整个机械)使用多张贴图需把所有贴图合并到一张上

5、无动画的共用材质的模型合并为一个模型(如机械上的两个或多个部件)

6、没有动画或者不会交互但是会重复利用的模型尽量合并合并后总顶点数不超过900除以贴图数(1张贴图900顶点上限 2张450 3张300 以此类推) 顶点数超出则拆分模型

u3d Mesh Baker步骤:

1、菜单栏>Game Object>Create Other>Mesh Baker>Multi-Mesh andMaterial Baker

2、Hierarchy中选择创建的Mesh Baker在Inspector中选择MB3_Texture Baker脚本使用Open Tools For Adding Objects添加需要合并贴图的object

3、弹出窗口选择目标模型 可使用静态或者激活选项来筛选 选择完毕后更改Using Lightmap Index为不过滤 使用Add SelectedMeshes命令添加到列表中

?4、检查添加模型无误后 使用CreateEmpty Assets For Combined Material创建一个合并贴图使用的新材质 指定路径 然后执行Bake Materials Into Combined Material

?5、选择MB3_Multi Mesh Baker脚本 使用Bake生成新的合成Mesh]

?6、原Mesh隐藏或删除(删除节省资源,但一定要确定该模型不会再被使用)

u3d烘焙步骤:

1、导入模型后做成Scale为1的预制体 被调用时尽量不要更改Scale

2、不需要动态载入资源的静态物体尽量不要用脚本载入

3、布置好场景后打开Occlusion 根据需要bake的场景空间大小和模型细节程度选择适当的bake尺寸

4、bake完后 打开Lighting 设置scene中关闭Skybox、Sun(设为None)

4.1、如使用Light Probe、 Reflection Probe 打开Precomputed Realtime GI 关闭Baked GI

4.2、如不使用Light Probe、 Reflection Probe 需要烘焙阴影则关闭Precomputed Realtime GI 打开 Baked GI 设定合适的 Baked Resolution、 Baked Padding(Unity3d 5.4.0.b18 勾选Ambient Occlusion)

5、如Auto Build选项被打开则需关闭(节省时间) 并点击Build下拉菜单执行Clear Baked Data

6、根据需求创建灯光(尽量减少Realtime灯光数量和shadow数量以及点光源数量以节省系统资源)

7、在Lighting 设置Object里筛选Renderers  设置静态物体合适的Scale inLightmap大小(地形为1或者更大 大建筑障碍物0.5-1树木石头等小障碍物0.1-0.5)

8、在Lighting 设置Object里筛选Lights把所有Realtime光源隐藏 所有Bake光源打开执行Build 等候执行读条完成 期间勿对场景进行操作

9、Build完成后 把所有Realtime光源打开 所有Bake光源隐藏或删除(删除节省资源,但一定要确定该光源不会再被使用)

10、主光源打开shadow其余光源按情况决定是否打开shadow 按需求决定是否开启Skybox和Sun

原文地址:https://www.cnblogs.com/guaishoudashu/p/9597273.html

时间: 2024-10-02 18:38:02

unity mesh baker(游戏场景优化插件)的相关文章

Unity3d游戏场景优化杂谈(3)

LOD(Level-of-detail)是最常用的游戏优化技术 .如果你的程序可以定制开发应用LOD的模块,当然 是很美好的事情.不过如果没有也没关系,大家可以使用UniLOD这个第三方的LOD插件.免费共享的哦(向UniLOD开发者致敬,赞美伟大的共享精神!!!) 以下是简介: 功能众多,涉及到场景管理,模型优化,资源管理员,及显示效果变化,且不需要脚本编写,全部通过编辑器实现!目前此unity3d扩展为开源的,你可以下载到源代码来研究学习. 特色: ·1.自动简化网格体(Windows +

Unity3d游戏场景优化杂谈(4)

首先介绍下draw call(这个东西越少你的游戏跑的越快): 在游戏中每一个被展示的独立的部分都被放在了一个特别的包中,我们称之为“描绘指令”(draw call),然后这个包传递到3D部分在屏幕上呈现出来.这就和你希望你的亲友收到准备好的圣诞礼物需要包装好然后穿过城市准时放在他应该出现的地方一样没什么不同.你的CPU来完成包装和传递他们的活,同时会消耗很多的带宽,所以最终分配好这些关键性资源很重要.目前,真正可怕的事情是从描绘指令消耗远景开始,每一个独立的飞溅到地板上的血迹和一个角色或者一具

Unity3d游戏场景优化杂谈(2)

动态实时灯光相比静态灯光,非常耗费资源.所以除了能动的角色和物体(比如可以被打的到处乱飞的油桶)静态的地形和建筑,通通使用Lightmap. 强大的Unity内置了一个强大的光照图烘焙工具Beast,这个东东是Autodesk公司的产品(可怕的垄断,感觉和3d沾边的软件丫都要插一手).据说用来制作过杀戮地带和镜之边缘.        镜之边缘建筑场景漂亮干净的光影,Lightmap的效果. 在Unity中制作Lightmap很方便,调节几个参数后直接烘焙即可.支持GI,Skylight, 效果一

C#游戏开发快速入门 2.1 构建游戏场景

C#游戏开发快速入门 2.1  构建游戏场景 如果已经计划好了要编写什么样的游戏,在打开Unity以后,要做的第一件事情就是构建游戏场景(Scene).游戏场景就是玩家游戏时,在游戏视图中看到的一切,包括游戏背景.游戏角色.阳光等等,这些所有可视的元素在Unity中,被统称为游戏对象(GameObject).本节就先来学习游戏场景的构建. 2.1.1  新建游戏场景 就像是创建游戏就需要要新建游戏项目一样,构建游戏场景也是需要新建游戏场景的.只不过,Unity在开发者新建游戏项目的时候,已经默认

Unity优化方向——在Unity游戏中优化脚本(译)

原文地址:https://unity3d.com/cn/learn/tutorials/topics/performance-optimization/optimizing-scripts-unity-games?playlist=44069 介绍 当我们的游戏运行时,我们设备的中央处理器(CPU)执行指令.游戏的每一帧都需要执行数百万的CPU指令.为了保持平滑的帧率,CPU必须在规定的时间内执行指令.当CPU不能及时执行所有指令时,我们的游戏可能会变慢.卡顿. 许多事情会导致CPU有太多的工作

Unity游戏场景加载Loading详解

游戏中的Loading现在都做得很漂亮,但是归根究底就两种类型,静态Loading和动态Loading.静态Loading可能就是一张背景图.而动态的Loading就是在读取的同时有一个东西在“转圈”. 1.静态Loading:优点:读取场景使用同步的方法就可以,因为是同步方法所以读取的速度是最快的,也不用更新界面,因为同步执行方法的时候程序在等待读取结束.执行Application.LoadLevel(“name”);同步方法来加载你的场景. 缺点:Loading的时候如果界面不动,那么用户体

【Unity】4.0 第4章 创建基本的游戏场景

分类:Unity.C#.VS2015 创建日期:2016-04-05 一.简介 上一章我们学习了如何利用长方体(Cube)制作基本的3D模型,以及如何导入各种资源,本章将在此基础上,分别制作路面.跳板.树.灯光.水面.火光.--等,从而构建一个完整的游戏场景,最后再使用第1人称视图在场景中走一趟,看看各处展现的效果. 二.本章示例运行效果 本章的所有例子都在ch04Demos工程中.

Unity 2D游戏开发教程之为游戏场景添加多个地面

Unity 2D游戏开发教程之为游戏场景添加多个地面 为游戏场景添加多个地面 显然,只有一个地面的游戏场景太小了,根本不够精灵四处活动的.那么,本节就来介绍一种简单的方法,可以为游戏场景添加多个地面.具体的操作方法是: (1)在Project视图里,新建一个文件夹,命名为Prefabs.然后将Hierarchy视图里的Platform对象,拖动到Prefabs文件夹中,如此一来就可以生成一个同名的预置资源,如图2-11所示. 图2-11  通过拖动对象到Project视图的方式,新建预置资源 (

Unity 3D酷跑类游戏场景循环

Unity 3D酷跑游戏场景循环 ////////////////2015/07/05///////////// ///////////////by xbw//////////////////// ///////////////环境 Unity4.6.1////// 经过一上午的学习与实验,终于实现了3D酷跑游戏的场景循环..大喜.遂分享交流,共同学习. 在场景中建两个Plane作为地面,分别命名为Plane1,Plane2: Position 分别设为0,0,50:0,0,150: Scale