|
GameRes游资网授权发布 文 / 战魂小筑 徐波
一个手游的图形技术关键性指标是: 内存占用, DrawCall和包大小。
这三个参数是训练有素的程序和UI美术都需要关注的重要问题。
接下来我们来讲解下UI美术怎么对待这三个问题。
内存占用
手机的内存不会明显区分内存和显存, 大部分都是共享访问的. 这里说的内存, 一般可以通过一些工具直接看到, 比如说XCode等图形上对内存影响最大的就是纹理, 而纹理上最关键的问题就是纹理的大小, 也就是纹理面积。
我曾经见过一些训练不是那么有素的UI美术, 用鼠标选中几个png文件, 点击属性告诉我: 诺, 你都看到了, 我这边的图片才占几kb, 为啥你总是说内存占用大纹理的内存占用, 只决定于纹理的面积以及发色数, 纹理面积就是长乘宽(像素), 发色数就是一般常说的: 16位色, 32位色。
之所以把内存占用放在首位, 是因为, 大多数的手机一旦超过限定内存就会开始清理后台挂起的程序, 实在清理不了只有杀掉最占内存的程序,这就肯定杀到了你写的游戏之上。
DrawCall(DC)
美术来理解这个概念可以这么说: 绘制一张图片需要耗费1次DC, 假设界面上有10个图标, 那就需要耗费10个DC。
而一般手游的DC需要限定在150个之内, 如何降低DC呢, 就需要通过Atlas技术来合并图片。
将多张图片打到一张纹理上的技术被叫做Atlas, 俗称大图或者图集, 被打之前的图也就叫小图。大图上的每个图元素叫做精灵。每个精灵被绘制无数次最终也只会耗费1个DC。
但我们不能把所有游戏用到的图片都打成图集, 这并不划算,我们会根据图的使用频率, 用途来按需打图集。
比如说:
1. 进游戏只看一次的宣传图, 为了方便制作和加载迅速, 做一张整图动态加载会比较好。
2. 反复查看的图标, 因为数量相对固定,数量不会膨胀, 我们就做成图集。
3. 但是类似于刀塔传奇中50+英雄, 普通玩家看不到那么多英雄但又被打成图集是不划算的, 所以损失一点DC按小图绘制及加载是正确方法。
4. 一般时候, 我们将尺寸小的图片打成图集, 配合大尺寸图片同时加载。
包大小
包大小对于游戏来说, 会影响的是玩家首次下载的时间, 如果连游戏都不下载, 做的再漂亮的游戏也是没用的。
降低包大小的方法很多, 例如:
1. 分包机制. 先玩小包, 根据需要下载大包, 多见于MMORPG
2. 良好的资源管理方法及习惯
3. 剔除冗余资源
4. 尽量使用3D渲染代替2D纹理图片
以上3个概念是游戏美术, 程序必须了解的重要概念。但一个合格的美术, 除了事后优化, 还需要做的是事前优化。
事前优化包括: 在游戏立项后, UI美术需要了解基本的游戏功能设计方案,出一套基本的对话框, 提示框, 图标装饰等的图素, 这些资源往往只有不到512见方的资源。利用这些图片可以拼凑出70%的界面及美化效果。在这之后的UI内容, 只是特效,动画的设计。
一些道理:
1. 进游戏因为内存超标就崩溃, 再漂亮的图片也是没用的。
2. 游戏是多门艺术的综合, 游戏美术的不仅要画的好, 还要能做出优化的好的资源。
3. 手游和端游的美术资源标准有本质区别, 资源做出来是给人看的, 不是屏幕. 因此高低分辨率的搭配, 尤为重要。
4. 还是那句话, 多看看别人做的游戏, 多问问别人怎么做的。
相关阅读:手游UI的进化:从辐射状结构到环形结构
|
|