转自:http://cl314413.blog.163.com/blog/static/1905079762012102593840605/
《无尽之刃》使用的是虚幻引擎进行的开发。该游戏在IOS上的性能表现非常好。这样一款拥有次时代PC游戏品质的游戏,在高水准的美术表现下,关卡的平均总面数只有190000三角面,58个drawcall,30-70的帧速,那么制作团队是怎样做到的呢。
一。 光照
1.以平行光来表现太阳光的效果
2.场景中的对象和角色的光照渲染都采用点光源
3.场景中的物件大部分都是不接受实时光照,其光照效果全部是由静态制作(烘培),光源,比如一盏灯等,只是表现一个亮的效果。
二。 贴图
1.角色的贴图由,贴图,normalmap,diffuse贴图,高光效果为了节约内存,使用的是diffuse贴图的a通道。
2.场景中的建筑,物件例如墙壁的砖石,在制作时采用了brush贴图,加上手绘贴图之后,烘培成一张贴图,阴影光照、dirty贴图等烘培成一张贴图,如果不使用brush贴图的方式,那么就全部烘培成一张贴图。手绘贴图的使用,会让场景风格化,避免场景的单调和乏味。光照和阴影贴图均可以由引擎渲染出之后,导出手动修改,避免阴影粒度过大的马赛克问题等。
3.角色采用的是低模型,高贴图的方式,贴图达到了2048大小(估计是NORMALMAP之流)。
三。mesh
1.因为镜头固定,场景中大量的采用了公告板对象,大部分稍微远一点的建筑以及植被,均采用了公告板的方式以减少游戏面数。
2.角色的顶点在优化前是5000个左右,优化后,顶点被减少到了3000个,基本看不出效果的不同(我位置还是比较靠后,可能没有看清楚)
3.一个关卡的平均总面数在190000个三角面左右。
4.引擎自动对远处的细节物体进行剔除处理
5.角色没有使用顶点色来表现细节,因为效果据说不够理想。
四。动画
1. 角色动画是采用真人动作捕捉制作
2. 植被的摇曳动画,采用的shader是利用植被MESH的顶点色中的a通道来作为该顶点摇曳效果的接受权重。比如树干部分的顶点色的该通道值可以为0,则树干底部则不会受到顶点shader的影响。
3. 角色中的每个顶点规定只能受到2根骨骼的影响,以提高骨骼运算效率。
五。注意事项
1. 虚幻引擎中的特效系统慎用。据说移动平台上效率很低。具体怎么慎用也没有说清楚。。。汗。
2. 尽量使用静态烘培。