Skip to main content
VRCHINA
AR论坛
 首页 » 资源教程 » Unity3D教程

Unity3D项目优化

2016年09月05日 19:54:333640

总体来说:合并,合并,合并!如果你比较关心游戏的速度,请合并模型!合并材质!合并贴图!
    
模型的优化

    现在的图形显卡可以很好的支持很多的多边形,但是他们他们还是有一些瓶颈的。所以如果你有一个有100个三角形的Mesh,它渲染起来所需要花费的运算跟1500个面数的物体是没有多大差别的。因此最佳的渲染设置时每个模型大约1500-4000个三角面。
    所以再次重复,最好的是导入模型时合并Objects直到他们每个模型在1500个三角面面甚至更高一些,并且只使用一个材质。如果只是把两个模型合并在一起但是用多个材质这样不会给你的图形带来一点优化。如果你想有效的合并物体,你需要保证你合并后的模型只使用一个材质。
    Unity对于向显卡导出各种多边形是很擅长的,它可以很详尽的把所有的图形导入到显卡,并且优化数据。你需要做的只是确定你的图形显示卡正常工作。而不是要调整很多手动调节的设置。

    灯光的优化
    如果你想要有一个不错的展示,并且不关心凹凸贴图和实时灯光,可以去Edit->Render Settings...然后设置Pixel Light Coun为0.这将会给所有的Object使用顶点灯光。这将会让所有的物件在每一帧都会被渲染一次。这是一个比较极端的LOD设置,所以你的游戏就可以再比较老的图形显卡下运行了。
    如果你使用的是像素灯光,那么每个被这个灯光照射到的GameObject都会在每一帧被渲染一次。如果你合并了两个距离很远的物体,他就会增加物件的大小。如果你的物件是分开的,灯光将不会渲染远处的物体。因此,如果你的GameObject中有很多独立物件的时候,你可以让他们离得比较远。
    当渲染一个模型的时候,Unity如果发现很多灯光在Mesh的周围,它将会找出那个是主要影响这个Mesh的灯光,在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接缝的数量尽可能少。

    烘焙灯光到光照贴图或者到顶点颜色。

评论列表暂无评论
发表评论