Unity3D一些优化经验

来源:互联网 发布:js将链接生成二维码 编辑:程序博客网 时间:2024/06/05 04:07

转自http://www.cnblogs.com/oldman/articles/2400533.html

模型的优化。
  现在的图形显卡可以很好的支持很多的多边形,但是他们他们还是有一些瓶颈的。所以如果你有一个有100个三角形的MESH,它渲染起来所需要花费的运算跟1500个面数的物体是没有多大差别的。因此最佳的渲染设置时每个模型大约1500-4000个三角面。
   所以再次重复,最好的是导入模型时合并Objects直到他们每个模型在1500个三角面面甚至更高一些,并且只使用一个材质。如果只是把两个模型合并 在一起但是用多个材质这样不会给你的图形带来一点优化。如果你想有效的合并物体,你需要保证你合并后的模型只使用一个材质。
  Unity对于向显卡导出各种多边形是很擅长的,它可以很详尽的把所有的图形导入到显卡,并且优化数据。你需要做的只是确定你的图形显示卡正常工作。而不是要调整很多手动调节的设置。
  灯光的优化。
   如果你想要有一个不错的展示,并且不关心凹凸贴图和实时灯光,可以去Edit->Render Settings...然后设置Pixel Light Coun为0.这将会给所有的Object使用顶点灯光。这将会让所有的物件在每一帧都会被渲染一次。这是一个比较极端的LOD设置,所以你的游戏就可以 再比较老的图形显卡下运行了。
  如果你使用的是像素灯光,那么每个被这个灯光照射到的GameObject都会在每一帧被渲染一次。如果你合并 了两个距离很远的物体,他就会增加物件的大小。如果你的物件是分开的,灯光将不会渲染远处的物体。因此,如果你的GameObject中有很多独立物件的 时候,你可以让他们离得比较远。
  当渲染一个模型的时候,UNTIY如果发现很多灯光在MESH的周围,它将会找出那个是主要影响这个MSEH的灯光,在Edit->Render Settings中的设置就是用来调整有多少个灯光最终作为像素灯光,有多少作为顶点灯光。
  每一个灯光通过计算离MESH得距离和自己灯光强度来决定自己的重要程度。
   在游戏中的某些灯光是很重要的,所以,每一个灯光都会有一个Render Mode设置,这个用来设置哪一个可以被用来设置为Force Pixel或者Force Vertex.想象一下假如我们是一个驾车的游戏,你的角色在夜晚打开车灯,前面的车灯就是游戏中最重要的灯光。因此,前大灯的渲染模式将会被设置为 Force Pixel,当然如果你有一个不是很重要的灯光可以选择使用"Force Vertex"的渲染模式,这个方式也不会对游戏的速度有很大的影响的。
  角色建模优化。
   你的角色应该只用一个蒙皮模型渲染器。当然有时候可能需要多个蒙皮的模型,但是如果你同时用两个蒙皮来作为一个角色,它就相当于你进行了两个角色的运算 量。你同样需要保持MESH的材质数量尽可能低。一般建议身体的材质数量为2-3个,当然如果你有武器的材质,也是需要单独一个的,因为你需要换武器。减 少骨骼的数量,一般来说游戏中的骨骼数量为15-60个。骨骼越少运行速度越快,一般来说30块骨骼就可以让角色动的很舒服了。如果你不是有特殊的设置, 我们强烈建议每个角色30个骨骼。
  角色多边形的数量主要是看你对游戏的质量要求,500-6000个三角面是比较推荐的。如果你的游戏场景中 将会出现多个角色,那么就要适当的降低一下多边形数量了。如果你想要在比较老的机器上运行,你需要更少的多边形数量。比如,半条命2游戏的角色通常是 2500-5000个三角面。达到AAA标准的次时代游戏比如像是PS3或者XBOX360上的游戏角色通常有5000-7000个三角面。
  把IK控制器和FK控制器分离,当动画导入以后,IK的节点将会烘焙到FK上,其实UNITY并不需要IK节点,你可以删除它们。
  创建一个公共的骨架,这样就可以让你让不同的角色之间共享动作了。
  给每一个骨骼正确的命名,方便团队工作,不然你得每次指定骨骼。
  使用尽量少的面。
  UV接缝的数量尽可能少。
  烘焙灯光到光照贴图或者到顶点颜色。
  http://hi.baidu.com/thejavafan/blog/item/92c668991a8c65166f068ceb.html

PS:

这个之前在研究官方的换装系统。也是通过身体部件,组装成一个模型,使用一张材质,即只是用一个蒙皮渲染器!!

原创粉丝点击