在Unity3D中,你开发一款游戏,可能需要同时发布到不同平台中。比如,对于PC平台,你可能需要引擎打包高质量的材质纹理,光照图信息。而对于Mobile平台,由于CPU上载数据到GPU需要一定宽带,想象下,如果你的一个渲染实例使用了一个2048*2048分辨率的纹理,然后你把这个游戏发布到移动端,那么,当渲染这个物体时,首次加载需要CPU将纹理数据上载到GPU缓存,而且还需要生成Mipmap。这就更加增加了卡帧时间。造成的情况是,当玩家的视锥出现在一个地方,而这个地方的物体首次被渲染,那么引擎将首次为该物体解析纹理并生成Mipmap,这个时候由于纹理比较大,在移动端就会出现这一帧卡帧的情况。
所以,可以在发布到移动端时,将纹理级别设置低一些,并且可以降低渲染质量来提升性能。在Unity3D中,双击一张纹理,在监视器面板中,会出现质量选项栏。如下:
对于移动端,这张默认的纹理2048*2048实在太大了,我们修改Max Size为1024,然后修改Compression(压缩模式)为标准质量。确定后点击Apply,如下:
另外,我们修改的是"Default"面板,我们还可以对每个平台具体进行设置,如下:
另外,还有一个可以设置的地方,如下:
这个地方设置的是运行选择面板选项,我们发布游戏时,启动时默认会有一个设置对话框,在那里,可以选择我们要启动的质量模式,这里也可以设置我们的默认质量模式,如下:
这里默认选择最高效果(Fantatic)模式,各个参数你可以随意修改,也可以单独添加一个Quality Level进行修改。要选择其他模式作为默认方案,只需要单击选中即可,如下:
这是一些常见的自带的优化选项。另外一点,建议将纹理改为dds格式,dds自带了Mipmap,这样。当cpu上载纹理到gpu缓存时,只需要复制内存,只要纹理不是特别大,这很快,几乎没有开销,而且自带了Mipmap,不需要硬件为其生成Mipmap。