模型及贴图的细节及优化

关于模型及贴图的细节及优化

(移动开发)

1.对于静态物体,控制网格数,一般在500以下,不要添加动画组件。

2.题图尽量不要超过1024,不同的模型,可以的话,尽量用一个贴图上,一个材质球,一个网格。贴图的拼合有助于提高渲染效率。

3.对于动态物体,比如主角,敌人,尽量把面片控制在300-2000之间。

4.对于贴图格式,如果需要Alpha通道的,可以用png,或则tga格式,如果没有的话,可以采用jpg方便压缩。Mipmap可以提高效率。

5.UV尽量画在0~1之间,这样可以不用导入的时候在UV转换。

6.远处的背景可以采用一个面解决。

7.结合网格,结合贴图,结合材质球,共享动画

8.每个角色尽量使用一个Skinned Mesh Renderer,这是因为当角色仅有一个 Skinned Mesh Renderer 时, Unity 会 使用可见性裁剪和包围体更新的方法来优化角色的运动,而这种优化只有在角色仅含有一个 Skinned Mesh Renderer 时才会启动。角色的面数一般不要超过1500,骨骼数量少于30就好,角色Material数量一般1~2个为最佳。

9.删除场景中多余的面,在建立模型时,看不见的地方不用建模,对于看不见的面也可以删除,主要是为了提高贴图的利用率,降低整个场景的面数,以提高交互场景的运行速度。如Box底面、贴着墙壁物体的背面等。

10.模型在max导入的时候,对于单位设置,设置系统单位

11.保持模型面与面之间的距离推荐最小间距为当前场景最大尺度的二千分之一。例如:在制作室内场景时,物体的面与面之间距离不要小于2mm;在制作场景长(或宽)为1km的室外场景时,物体的面与面之间距离不要小于20cm。如果物体的面与面之间贴得太近,会出现两个面交替出现的闪烁现象。模型与模型之间不允许出现共面、漏面和反面,看不见的面要删掉。在建模初期一定要注意检查共面、漏面和反面的情况,这些造成了场景中模型闪烁的原因。

12.可以复制的物体尽量复制。如果一个1000个面的物体,烘焙好之后复制出去100个,那么他所消耗的资源,基本上和一个物体所消耗的资源一样多。

13.建模时最好采用Editable Poly面片建模,这种建模方式在最后烘焙时不会出现三角面现象,如果采用Editable Mesh 在最终烘焙时可能会出现三角面的情况。如图所示。

14.静态物体的动画,比如喷水池,可以采用纹理动画,而不是用脚本控制。

15.建筑模型为了增加真实感,可以同时添加一个反射材质图。

16.下雨的地方地面可以用在材质球添加法线贴图序列帧图播放

17.手机平台上,模型的顶点限制在100000个以内为佳,PC平台上,模型顶点数量控制在几百万个以内为佳。

18.减少模型UV接缝和硬边的数量

19.合并使用相同材质球的多个模型,如果使用的不是同一个材质球,合并无意义,这样可以减少Draw Calls的数量。通常在手机平台上控制在数百内为佳(200一下),PC控制几千内为佳(3000一下),当然硬件提升则另说。

20.尽可能减少模型骨骼数量

21.避免使用IK动画

22. 尽可能压缩贴图,如果不能则尽可能设置贴图为16位,而不是32位

23尽可能为贴图使用MipMaps功能,除非贴图从事1:1渲染显示,比如UI或2D游戏

24.如果合适,首选Mobile或Unlit的Shader

25.不需要工作的模型隐藏,减少CPU消耗

26.雾会对性能造成较大影响

27.尽可能减少像素光、阴影、反射的使用,这些功能导致模型被渲染多次,加重CPU的负担

28.尽可能的使用LightMap

29.在手机平台,带有透明效果的Shader会对性能造成较大影响。

时间: 2024-08-27 00:49:14

模型及贴图的细节及优化的相关文章

Unity3d程序方面的细节及优化

关于Unity3d程序方面的细节及优化 (基于移动开发) 1.每次创建的脚本对于用不到的Start(),.Update()函数都可以删除掉,尤其后者,即使什么都不做也会在更新. 2.不要做复杂的数学运算,比如开方运算Mathf.Sqrt()等,当我们求两个对象的距离的时候,可以直接自己计算求开方根上一级的运算.求三角函数也算复杂运算. 3.如果使用的Mono编辑器,在注释的时候,尽量采用英文注释(防止中文乱码) 4.Unity的每个component都在更新,脚本也算组件,所以一个对象不同的脚本

LSF-SCNN:一种基于 CNN 的短文本表达模型及相似度计算的全新优化模型

欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 本篇文章是我在读期间,对自然语言处理中的文本相似度问题研究取得的一点小成果.如果你对自然语言处理 (natural language processing, NLP) 和卷积神经网络(convolutional neural network, CNN)有一定的了解,可以直接看摘要和LSF-SCNN创新与技术实现部分.如果能启发灵感,应用于更多的现实场景中带来效果提升,那才是这篇文章闪光的时刻.如果你没有接触过NLP和CNN,也不在担心,可

[BZOJ1391]解题报告|网络流的又一类建图&Dinic的若干优化

1391: [Ceoi2008]order 有N个工作,M种机器,每种机器你可以租或者买过来. 每个工作包括若干道工序,每道工序需要某种机器来完成,你可以通过购买或租用机器来完成. 现在给出这些参数,求最大利润 关于建图和思路 刚开始看这道题的时候十分纠结,任务的做与不做,应当是典型的最小割取舍模型 然而买机器和租机器,又是常见的最小费用最大流模型的标志 进一步思考,对于每一对如下关系(任务)-(机器) 一共有三种处理方法: 1)任务不做 2)租用机器 3)购买机器 好像看出了点眉目,对于第一种

5种网络IO模型(有图,很清楚)

同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西.这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不相同.所以,为了更好的回答这个问题,我先限定一下本文的上下文. 本文讨论的背景是Linux环境下的n

phpcms图片模型调用组图的问题

phpcms里面有个图片模型,之前一直没有用过,之前用的轮播图是用文章+缩略图+推荐位实现的 今天看了一下图片模型添加内容的地方,和平常的文章相比多了一个组图的地方: 也即可以用一篇文章管理多个图片吧 那么我前台需要一个轮播图实现动态展示,怎么调用呢? 本来我是这样调的:因为只有一个文章在返回值$data里,而且键值是id,所以$data[1],注意需要调用副表,就是那个moreinfo="1" {pc:content action="lists" catid=&q

css盒子模型层级3D图

作为前端开发工程师,大家都应该知道盒子模型.下面用一张图来表达3D盒子模型的层级关系 大家可以看到background-color 在background-image的下一层.这个希望对大家有帮助

ER模型、类图

毕业论文管理系统设计类图 ER模型 原文地址:https://www.cnblogs.com/qinmiaomiao/p/8735397.html

IO模型之BIO代码详解及其优化演进

一.BIO简介 BIO是java1.4之前唯一的IO逻辑,在客户端通过socket向服务端传输数据,服务端监听端口.由于传统IO读数据的时候如果数据没有传达,IO会一直等待输入传入,所以当有请求过来的时候,新起一条线程对数据进行等待.处理,导致每一个链接都对应着服务器的一个线程. BIO是同步阻塞的,如图所示: 二.原理简述 BIO对应linux io模型的阻塞IO,服务端提供IP和监听端口,客户端通过连接操作想服务端监听的地址发起连接请求,通过三次握手连接,如果连接成功建立,双方就可以通过套接

Unity3D 学习教程 8 3d模型加贴图

点击创建  添加一个文件夹 命令为pic 把图片拖入到工程中 拖入后图片显示在pic文件夹中 把图片拖到立方体中 这样就完成了为3D模型添加贴纸的工作 --------------------------------------------------------------------------------------------------------------------------------------------------- 另一种方法添加贴纸 创建一个贴纸球  点击创建 点击