纳金网

标题: 浅谈Unity里面的模型优化 - 建模与材质的关联 [打印本页]

作者: 艾西格亚    时间: 2014-4-21 02:06
标题: 浅谈Unity里面的模型优化 - 建模与材质的关联

最近论坛里面有朋友非常关注游戏优化的问题,比较常见的是美术人员给的模型,在程序这边造成了运行不佳的现象,而程序人员却不知要如何跟美术沟通场景与模型的制作问题,我们希望通过此教程,让美术与程序人员都能理解到模型制作上的一些正确观念,进而对游戏的运行效能有实际上的提升。

下载附件的压缩文件后,打开3dsmax场景文件,如果出现了模型为黑色的显示画面,表示系统并没有找到模型对应的贴图资料,这时需要做的是指定贴图路径的动作。

1.png


如图所示,使用Max提供的Asset Tracking功能列出缺失的文件,选择这些标注为File Missing的文件名称,再使用Set Path指定出贴图的文件位置。

2.png


设置好贴图文件的位置后,在视图内的模型就能正确的显示出纹理效果。

3.png


另外还需要知道场景内的模型面数与单一个模型的面数与点数讯息,在视图的设置里面找到Statistics的栏位,勾选Polygon与Vertex Count,按下Apply完成设置。

4.png


如果视图内没显示出面数的讯息,可尝试按下7键即可,Total记录的是场景内所有模型的面与点数量,右边显示的数值则是目前所选的模型,例如这个木箱模型面数高达216,点数为218。

5.png


选择中间的木箱模型Crate_01,我们发现这个模型面数惊人的低,只有6个面与8个顶点,但是看起来的效果似乎跟第一个木箱完全相同,这表示第一个木箱在制作时,有过多的点与面是被制作人员浪费掉了,那么我们应该如何处理呢?

6.png


在视图里我们发现模型的结构有不必要的线段,将其选择出来后,按下Ctrl + 倒退键即可将这些线段从模型表面移除,注意不是按下Delet键,这两者的功能有区分,一个是移除,一个是直接删除,需注意操作方式的不同。

7.png


如图所示,在删除多余的线段后,模型的面数降低到78,都是与旁边的模型面数比较起来还是相距甚远,看来还有其他的地方是可以再进行优化的。

8.png


Max的石墨工具里提供了PolyDraw > Optimize的功能,这里面有多种的快捷键设置,可以方便的让我们在模型上进行点线面的优化工作。

9.png

按下Shift + 左键将点拖曳到另一个点上面即可完成焊接,如图所示,将模型角落上的三个点往分别拖到中间的点进行焊接。

10.png


经过了点的焊接处理,现在面数降低到30的数量,如果要达到右边模型的6面结构,那么就必须再精简模型的线段来达到最节省的面数。

11.png


现在我们看看Crate_01的面数是6面,绿色线条表示模型上面采用了拆分贴图的方式来完成纹理的制作,打开Unwrap UVW即可看到对应的贴图设置。

12.png


Crate01的模型采用的是六个面所组合而成的贴图,而Crate02采用的则是将每一个面都指定到一个贴图上面。

13.png

底下是Crate_02使用的贴图方式:
14.png


将模型输出到Unity,从视图里面看起来,这三个木箱模型并没有明显的区分,呈现出来的效果基本一致。

15.png


接着看看Game视图里面的状态,Draw Calls为2, Saved batching为1,不少朋友对这两个数值不是很理解,现在我们来分析下情况,以场景内有三个模型来说,Draw Call为2表示场景内有两个物件共用了一个材质,而另一模型则是使用了另一个材质,所以才会显示出这两个不同的数字,Draw Calls越低,FPS的数值越高就能让游戏玩起来更为流畅,所以程序人员想尽办法的就是降低Draw Call的值。

16.png


场景内左边的两个模型共用了Crate_DM的材质,而最右边的模型则是使用了Crate_DM01,贴图的内容虽然不同,但是在Unity场景里面我们并没法看出模型之间的差异。

17.png

18.png


将Crate_DM这个材质添加到最右边的模型,现在看看Draw Calls的数值降为1,batching上升为2,这表示三个模型共用了同一个材质,所以batching就增加为2。

19.png


将模型复制为9个,我们发现Draw Calls仍然为1,batching的数值上升到8,FPS数值的表现也相当的良好,现在我们理解了此方法可有效的提升游戏效能,往后程序人员跟美术沟通时就能清楚的指出造成游戏运行效果不佳的可能问题。

20.png


而朋友们更关心的是还有那些优化手段是美术与程序应该注意的呢? 在后面的教程里面,我们将会陆续的介绍不同的优化方法与可结合的插件,如果在操作上有疑虑的朋友也欢迎到本帖内留言讨论,更多的技术交流与分享请加入:
纳金网3dsmax技术交流群 - 284146304
纳金网Unity技术交流群 - 218689657


scenes.zip

1.7 MB, 下载次数: 104


作者: hyui    时间: 2014-4-21 04:10
Thank you for sharing this tutorial!
作者: fkun.lam    时间: 2014-4-21 08:27
感谢分享,好资源。
作者: guy_xy    时间: 2014-4-21 10:05
感谢分享啊!
作者: 狂风大尉    时间: 2014-4-21 11:28
不错的说明,谢谢了
作者: oldenogre    时间: 2014-4-21 12:01
下載學習了 謝謝分享
作者: wucnj    时间: 2014-4-22 08:46
感谢分享!!!
作者: 一苇渡江    时间: 2014-4-22 09:09
非常感谢啊
作者: lyx89118    时间: 2014-4-22 09:34
非常支持,很赞
作者: icerein    时间: 2014-4-24 14:49
不错的说明,谢谢了
作者: shotdead    时间: 2014-4-25 01:33
谢谢分享这资源, 非常好
作者: tangqizuse    时间: 2014-4-26 09:12
谢谢分享
作者: Kadina    时间: 2014-8-14 07:52
感谢分享啊!
作者: run0006    时间: 2014-9-21 11:43
感謝分享!
作者: hartly    时间: 2014-9-23 14:00
不错的说明,谢谢了




欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5