次 世 代 手 游 的 探 讨 Speaker Kevin BY Art Director & idreamsky
第 一 部 分 次 世 代 手 游 的 探 索 和 制 作 1.Shader 2.Mesh 3.Animation 4.Lightmap
1.Shader 1.1Normal Map( 法 线 贴 图 ) 1.2Specular Mapping( 高 光 贴 图 ) 1.3Cube Map( 环 境 反 射 贴 图 ) 1.4 自 研 Shader
1.1Normal Map( 法 线 贴 图 ) 法 线 贴 图 就 是 记 录 了 一 个 需 要 进 行 光 影 变 换 的 贴 图 上 的 各 个 点 的 凹 凸 情 况 的 贴 图, 显 示 芯 片 根 据 这 个 贴 图 的 内 容, 来 实 时 的 生 成 新 的 有 过 光 影 变 化 的 贴 图, 从 而 实 现 立 体 效 果 借 色 彩 之 值 存 法 线 之 向, 巧 妙 的 存 储 学 过 初 中 物 理 的 朋 友 一 定 还 都 记 得, 表 示 光 线 射 向 平 面 的 角 度 时 通 常 使 用 光 线 和 该 点 法 线 角 度 来 表 示 这 也 就 意 味 着, 如 果 我 们 将 一 个 贴 图 上 所 有 点 的 法 线 记 录 起 来 的 话, 就 不 难 再 利 用 这 些 信 息 实 现 后 期 的 假 的 凹 凸 效 果 了 记 录 这 些 法 线 的 载 体 就 被 我 们 称 为 法 线 贴 图 为 什 么 称 之 为 贴 图 呢? 我 们 知 道, 一 条 法 线 是 一 个 三 维 向 量, 一 个 三 维 向 量 由 X Y Z 等 3 个 分 量 组 成, 于 是 人 们 想 出 了 一 个 聪 明 的 方 法, 就 是 以 这 3 个 分 量 当 作 红 绿 蓝 3 个 颜 色 的 值 存 储, 这 样 的 话 就 生 成 一 张 新 的 贴 图 了, 这 就 是 法 线 贴 图 的 来 历
1.1Normal Map( 法 线 贴 图 ) Object-Space 的 优 点 A. Speaker 实 现 简 Name 单, 更 加 直 观 我 们 甚 至 都 不 需 要 模 型 原 始 的 Speaker normal Title 和 & tangent Company 等 信 息, 也 就 是 说 计 算 更 少 生 成 它 也 非 常 简 单, 而 如 要 要 生 成 Tangent-Space Normal Map 的 话, 由 于 它 的 tangent 是 和 UV 方 向 相 同, 因 此 想 要 效 果 比 较 好 的 Normal Map 的 话 要 求 UV Map 也 是 连 续 的 B. 在 UV 缝 合 处 和 尖 锐 的 边 角 部 分, 可 见 的 突 变 ( 缝 隙 ) 较 少, 可 以 提 供 平 滑 的 边 界 这 是 因 为 Object-Space Normal Map 存 储 的 是 同 一 坐 标 系 下 的 法 线 信 息, 因 此 在 边 界 处 通 过 插 值 得 到 的 法 线 可 以 平 缓 变 换 而 Tangent-Space Normal Map 中 的 法 线 信 息 则 依 靠 UV 的 方 向 和 三 角 化 结 果, 可 能 在 边 缘 处 或 尖 锐 的 部 分 会 造 成 更 多 可 见 的 缝 合 迹 象
1.1Normal Map( 法 线 贴 图 ) Tangent-Space 的 优 点 Speaker A. 自 由 Title 度 & 很 Company 高 Object-Space Normal Map 记 录 的 是 绝 对 法 线 信 息, 仅 可 用 于 创 建 它 时 的 那 个 模 型, 而 应 用 到 其 他 模 型 上 效 果 就 完 全 错 误 了 而 Tangent-Space Normal Map 记 录 的 是 相 对 法 线 信 息, 这 意 味 着, 即 便 把 该 纹 理 应 用 到 一 个 完 全 不 同 的 网 格 上, 也 可 以 得 到 一 个 合 理 的 结 果 B. 可 进 行 UV 动 画 比 如, 我 们 可 以 移 动 一 个 纹 理 的 UV 坐 标 来 实 现 一 个 凹 凸 移 动 的 效 果, 但 使 用 Object-Space Normal Map 会 得 到 完 全 错 误 的 结 果 原 因 同 上 这 种 UV 动 画 在 水 或 者 火 山 熔 岩 这 种 类 型 的 物 体 会 会 用 到 C. 可 以 重 用 Normal Map 比 如, 一 个 砖 块, 我 们 可 以 仅 使 用 一 张 Normal Map 就 可 以 用 到 所 有 的 六 个 面 上 D. 可 压 缩 由 于 Tangent-Space Normal Map 中 法 线 的 Z 方 向 总 是 正 方 向 的, 因 此 我 们 可 以 仅 存 储 XY 方 向, 而 推 导 得 到 Z 方 向 而 Object-Space Normal Map 由 于 每 个 方 向 都 是 完 全 可 能 的, 因 此 必 须 存 储 三 个 方 向 的 值, 不 可 压 缩
1.1Normal Map( 法 线 贴 图 ) 一 般 情 况 下 我 们 会 使 用 ZBrush\ Maya Mental ray CrazyBump NDo2 海 龟 渲 染 器 等 软 件 生 成 Tangent- Space Normal Map
1.2Specular Mapping( 高 光 贴 图 ) 高 光 贴 图 在 定 义 上 是 针 对 某 特 Speaker 定 的 角 Title 度 & 范 Company 围 反 光, 而 不 是 全 范 围 的 漫 射 光 基 本 上 高 光 的 亮 度 是 取 决 于 面 的 法 线 方 向 摄 像 机 和 光 源 的 平 均 方 向. 除 此 之 外, 高 光 贴 图 还 可 以 反 映 不 同 的 材 质, 例 如 金 属 的 反 光 范 围 较 小, 比 较 接 近 全 漫 射 光, 而 且 高 光 还 可 以 体 现 结 构 的 光 滑 程 度
1.21.3Cube Map( 环 境 反 射 贴 图 ) 为 了 在 游 戏 中 表 现 出 真 是 的 反 射, 我 们 不 可 能 采 用 真 实 的 物 理 学 计 算 来 模 拟, 因 为 代 价 实 在 是 太 大 了, 我 Session 们 的 手 机 也 承 Title 受 不 了 我 们 会 使 用 Cubemaps, 在 Shaders 中 创 建 反 射 的 效 果
1.21.3Cube Map( 环 境 反 射 贴 图 ) Unity5 问 世 后, 我 们 可 以 利 用 新 功 能 Reflecttion Probe 来 制 作 我 们 场 景 的 CubeMap 下 面 介 绍 一 下 大 致 的 方 法 1. 建 一 个 空 物 体, 给 物 体 添 加 一 个 Reflection Probe Component 2. Speaker 将 Reflection Name Probe 的 Type 设 置 为 Baked, 并 且 在 场 景 中 调 整 尺 寸 到 合 适 的 位 置 3. 在 Inspector 里 调 整 各 个 参 数, 点 击 Bake 按 钮, 生 成 CubeMap, 在 文 件 夹 里 即 可 找 到, 可 以 提 供 给 我 们 的 Shdaer 做 反 射 通 道 使 用
1.21.3Cube Map( 环 境 反 射 贴 图 ) Unity5 问 世 后, 我 们 可 以 利 用 新 功 能 Reflecttion Probe 来 制 作 我 们 场 景 的 CubeMap
1.4 自 研 X-Shader 所 谓 GPU 的 渲 染 管 线, 听 起 来 好 像 很 高 深 的 样 子, 其 实 我 们 可 以 把 它 理 解 为 一 个 流 程, 就 是 我 们 告 诉 GPU 一 堆 Session 数 据, 最 后 Title 得 出 来 一 副 二 维 图 像, 而 这 些 数 据 就 包 括 了 视 点 三 维 物 体 光 源 照 明 模 型 纹 理 等 元 素 在 各 种 图 形 学 的 书 中, 渲 染 管 线 主 要 分 为 三 个 阶 段 : 应 用 程 序 阶 段 几 何 阶 段 光 栅 阶 段 3D 游 戏 3D 图 形 API 模 型 坐 标 转 换 世 界 坐 标 转 换 摄 像 机 空 间 转 换 裁 切 空 间 转 换 写 入 帧 缓 存 区 像 素 计 算 光 栅 化 图 元 装 配
1.4 自 研 X-Shader 在 手 机 游 戏 中 使 用 实 时 灯 光 是 奢 侈 的, 由 于 给 CPU GPU 的 压 力 较 大, 所 以 在 很 多 机 器 上 不 仅 会 有 帧 率 降 低 的 问 题, 而 且 还 会 造 成 手 机 发 热 费 电 问 题 严 重, 严 重 影 响 了 用 户 的 游 戏 体 验 既 想 在 游 戏 中 实 现 次 世 代 游 戏 的 画 面 效 果, 例 如 角 色 的 高 光 法 线 效 果 等, 又 想 提 高 游 戏 的 运 行 效 率, 那 么 如 何 解 决 这 个 问 题 呢? 游 戏 中 的 场 景 模 型 我 们 会 使 用 LightMap 技 术 ( 后 面 会 讲 到 ), 会 有 表 现 真 实 的 阴 影 效 果, 所 以 不 必 使 用 实 Speaker 时 灯 Title 光 & 但 Company 是 我 们 的 角 色 模 型 在 游 戏 中 是 动 态 的, 我 们 想 了 一 个 优 化 办 法 : 给 角 色 模 型 使 用 的 shader 添 加 一 些 参 数, 用 来 模 拟 灯 光 的 参 数, 使 其 参 与 到 shader 里 的 计 算, 不 再 使 用 Unity3D 中 的 灯 光
1.4 自 研 X-Shader Unity3D 引 擎 里 灯 光 无 非 就 是 就 是 一 些 参 数 集 合 的 对 象, 比 如 灯 光 位 置 灯 光 强 度 灯 光 颜 色 等 等 这 些 信 息, 我 Session 们 可 以 自 己 利 Title 用 这 些 算 法 的 原 理, 来 优 化 我 们 的 shader, 摒 弃 一 些 浪 费 的 计 算 方 式, 从 而 在 游 戏 中 不 再 使 用 实 时 灯 光, 提 高 游 戏 的 运 行 效 率 我 们 通 过 UnityCG.cginc 文 件, 可 以 找 到 计 算 在 Object Space 下 灯 光 方 向 计 算 的 函 数 : // Computes object space light direction inline float3 ObjSpaceLightDir( in float4 v ) { float3 objspacelightpos = mul(_world2object, _WorldSpaceLightPos0).xyz; #ifndef USING_LIGHT_MULTI_COMPILE return objspacelightpos.xyz - v.xyz * _WorldSpaceLightPos0.w; #else #ifndef USING_DIRECTIONAL_LIGHT return objspacelightpos.xyz - v.xyz; #else return objspacelightpos.xyz; #endif #endif }
1.4 自 研 X-Shader 因 为 我 们 要 在 shader 中 模 拟 一 个 灯 光, 灯 光 方 向 我 们 通 关 一 个 四 元 数 来 设 置, 这 样 可 以 自 由 灵 活 独 立 控 制 每 一 个 角 色 的 灯 光 效 果 ( 方 向 颜 色 等 ): XFight_Character_V2F vert_xfight_character(appdata_full v,float4 WPos) { XFight_Character_V2F o; o.pos = mul(unity_matrix_mvp,v.vertex); o.uv = v.texcoord.xy; o.normal = normalize(v.normal); float3 objspacelightpos = mul(_world2object,wpos).xyz; float3 objcampos = ObjSpaceViewDir(v.vertex); o.lightdir = normalize(-objspacelightpos.xyz); o.cameradir = normalize(objcampos); o.lightcolor = ShadeVertexLights(v.vertex,v.normal); _ZOffsetOfRasterization *= 0.0001; o.pos.z += _ZOffsetOfRasterization; return o; }
1.4 自 研 X-Shader 项 目 中 针 对 角 色 的 不 同 效 果 以 及 Session 不 同 的 人 Render Title Path 使 用 不 同 的 Shader, 如 图 所 示
1.4 自 研 X-Shader Maya 与 Unity3D Shader 表 现 一 致 使 用 unity3d 引 擎 开 发 游 戏, 有 一 个 问 题 就 是 如 何 使 引 擎 中 自 己 开 发 的 shader 表 现 与 3D 美 术 资 源 制 作 软 件 ( 我 们 使 用 的 是 Maya) 的 shader 表 现 实 现 统 一, 并 且 如 何 美 术 制 作 人 员 可 以 方 便 将 Maya 的 材 质 参 数 传 递 给 Unity, 不 需 要 在 Unity 中 进 行 2 次 编 辑 我 们 在 Maya 里 开 发 了 和 在 Unity 中 效 果 1:1 的 cgfx shader
1.4 自 研 X-Shader Maya 与 Unity3D Shader 表 现 一 致 当 角 色 模 型 的 美 术 制 作 人 员 在 Maya 中 调 整 好 角 色 材 质 球 的 美 术 效 果 后, 通 过 角 色 模 型 导 出 工 具 ( 后 面 会 讲 到 ) 可 以 将 材 质 的 参 数 一 同 导 出, 在 Unity 中 传 递 参 数 即 可
2.Mesh 2.1 角 色 的 制 作 流 程 2.2 高 模 制 作 2.3INGAME MESH
2.1 角 色 的 制 作 流 程 策 划 内 部 讨 论 角 色 需 求 角 色 小 组 启 动 首 次 讨 论 会 原 画 启 动 ( 美 术 资 料 收 集 1-2 天 ) 策 划 讲 解 角 色 设 计 需 求, 相 关 特 小 组 人 员 参 加 小 组 全 员 参 加 : 1. 角 色 生 态 表 角 色 外 在 的 物 理 特 征 ( 年 龄, 身 高, 体 重 ) 2. 角 色 气 质 表 角 色 内 在 行 为 个 性 ( 张 扬, 内 敛, 含 蓄 ) 1. 灯 光 方 向 统 一, 阴 影 颜 色 边 缘 模 糊 度 一 致 2. 角 色 材 质 质 感 明 确, 符 合 原 画 设 计 感 觉 3. 保 证 细 节 和 整 体 统 一 确 认 效 果 角 色 制 作 完 成 特 效 确 认 1. 还 原 出 特 效 概 念 图 的 风 格 2. 设 计 出 特 效 动 态 的 打 击 感 3. 还 原 到 FX 系 统 中, 保 证 每 角 色 10M 的 特 效 资 源 角 色 设 计 确 认 讨 论 会 原 画 造 型 设 计 原 画 造 型 设 计 验 收 会 3D 制 作 启 动 原 画 交 付 件 为 : 1. 设 定 稿, 三 视 图 2. 关 键 pose 设 计, 质 感 描 述 3. 大 招 概 念 设 计 4. 特 效 基 本 要 素 设 计 从 造 型, 模 型, 动 作, 特 效 不 同 纬 度 进 行 讨 论, 确 定 制 作 难 度 和 后 续 工 作 的 时 间 节 点 输 出 : 1. 角 色 特 效 风 格 定 位 2. 动 作 设 计 时 间 点. 3. 进 一 步 统 一 对 角 色 生 态, 气 质 的 认 知 2D 动 作 设 计 3D 角 色 模 型 1. 加 强 动 作 概 念 设 计, 关 键 动 作 辅 以 招 式 说 明 2. 策 划 标 记 出 动 作 的 连 接 关 系, 美 术 设 计 时 要 重 点 注 重 连 续 技 动 态 表 现 力 动 画 设 计 确 认 3D 角 色 粗 绑 1.Blocking 阶 段 要 加 快 节 奏, 尽 快 完 成 基 础 动 作, 基 本 攻 击, 特 殊 攻 击, 必 杀 技 2. 动 作 分 块 验 收 3. 动 作 修 改 要 有 优 先 级 随 时 修 改 和 最 终 统 一 修 改 都 不 可 取 合 理 的 方 式 是 分 组 分 期 修 改, 比 如 每 周 统 一 修 改 某 分 块 完 成 后 统 一 修 改 即 可 3D 动 画 Blocking 基 本 POSE 基 本 体 型 确 认 会 导 入 引 擎 动 画 细 化 以 及 附 件 游 戏 中 确 认 反 馈, 修 改 特 效 InGameMesh, 细 绑 1.Blocking 做 完 之 后 输 出 临 时 渲 染 图, 供 策 划 进 行 招 式 和 打 击 感 的 匹 配 2. 对 于 不 合 理 的 招 式 与 判 定 及 时 提 出 3. 对 于 帧 数 和 时 间 段 修 改 要 及 时 反 馈 4. 尽 量 避 免 不 符 合 运 动 规 律 的 POSE 相 互 连 招
2.1 角 色 的 制 作 流 程 角 色 原 画 设 计 角 色 模 型 制 作 角 色 动 作 设 计 角 色 动 画 制 作 特 效 设 计 制 作
2.2 高 模 制 作
2.2 高 模 制 作
2.2 高 模 制 作 如 果 是 盔 甲 以 及 硬 皮 质 的 质 感 的 衣 服 制 作 的 要 求 如 下 下 图 是 制 作 原 则 的 总 结 ;
2.2 高 模 制 作 高 模 制 作 的 原 则 像 软 皮 夹 克, 牛 仔 裤, 布 质 感 的 面 料 要 保 证 结 构 准 确, 细 节 清 楚, 衣 褶 的 节 奏 表 现 分 明, 有 美 感 饰 物 的 细 Session 节 要 清 楚 花 Title 纹 要 合 理 要 大 转 折, 注 意 把 握 疏 密 的 节 奏 结 合 原 画 设 计 部 分 的 大 转 折 大 色 块 的 要 求
2.3INGameMesh
2.3INGameMesh
Speaker 3. NameAnimation 3.1 Animation Design 3.2 Animation Rigging
Animation Design 要 获 得 高 品 质 动 画, 必 先 了 解 你 要 做 内 容 和 它 们 之 间 的 逻 辑 关 系 特 Speaker 别 是 Name 动 作 类 游 戏 动 作 和 动 作 之 间 要 结 合 流 畅 的 连 招 和 相 关 类 似 的 一 些 攻 击 特 性 所 以 必 须 要 先 规 划 一 个 层 级 严 谨 的 Animation Tree, 先 要 搞 清 楚 所 有 的 跳 转 关 系 通 过 跳 转 关 系 我 们 可 以 清 楚 的 看 到 所 有 的 动 作 的 数 量 和 大 概 时 长 一 方 面 可 以 给 策 划 设 计 动 作 提 供 一 个 设 计 原 则, 另 一 方 面 可 以 让 动 画 师 将 动 作 很 好 的 分 类, 并 分 清 主 次
Animation Design 待 攻 击 武 器 攻 击 脚 攻 击 轻 近 身 轻 远 身 重 近 身 重 远 身 1 类 技 能 1 23... 2 类 技 能 1 23.. QTE + C 12.. 待 机 走 路 空 中 连 招 防 御 轻 拳 命 中 不 中 地 面 受 击 轻 受 击 重 受 击 击 飞 普 通 跑 步 跳 跃 闪 避 123. 特 殊 受 击 必 杀 技 必 杀 1 23... 防 御 命 中 空 中 受 击 不 中 特 殊 防 御 死 亡 轻 受 击 重 受 击 击 飞 普 通
Animation Design 受 击 ( 通 用 所 有 角 色, 配 合 更 精 准 的 攻 击 部 位, 并 延 为 展 招 为 各 个 式 体 系 ) 表 演 类 ( 角 色 性 格 描 述 ) 基 本 类 ( 走 跑 跳, 配 合 烟 尘 特 效 ) 普 通 攻 击 类 ( 通 用 特 效 ) 特 殊 攻 击 类 ( 特 效 ) 必 杀 超 杀 类 (QTE+ 镜 头 特 写 )
Animation Design 在 游 戏 中 的 角 色 的 动 作 都 是 有 限 的, 如 何 在 有 限 的 动 作 表 现 中, 一 方 面 实 现 策 划 对 于 攻 击 判 定 的 要 求, 另 一 方 Session 面 又 要 体 现 Title 角 色 本 身 鲜 明 的 个 性 这 个 点 需 要 斟 酌 和 权 衡, 而 这 个 时 候 的 动 作 的 设 计 者 需 要 被 约 束, 约 束 的 选 择 是, 受 击 必 须 是 所 有 角 色 通 用 的 动 作 而 受 击 的 表 现 决 定 了 攻 击 动 作 攻 击 的 部 位, 这 样 的 话 受 击 就 会 显 的 尤 为 重 要, 特 别 是 精 细 化 的 动 作 游 戏 必 须 是 受 击 反 推 攻 击 的 原 则 来 设 计 动 作 表 现
Animation Design 我 们 之 所 以 会 记 住 某 一 些 优 秀 的 电 影 或 游 戏 角 色, 除 了 他 们 张 相 和 衣 着 之 外, 他 们 的 言 行 举 止 也 是 我 们 重 Speaker 要 的 Title 记 忆 & Company 点, 特 别 是 动 作, 最 直 接 的 刻 画 了 人 物 性 格 最 关 键 部 分 而 体 现 这 些 角 色 的 性 格 动 作 的 最 关 键 的 特 征 部 分 就 是 角 色 POSE, 或 者 角 色 剪 影 而 这 些 是 需 要 我 们 在 前 期 需 要 设 计 师 来 进 行 设 计 的
Animation Rigging Animation 系 统 我 们 选 择 了 使 用 Maya 作 为 主 要 的 开 发 工 具 Maya 节 点 式 的 结 构, 以 及 提 供 强 大 的 API, 为 我 们 开 发 出 相 关 工 具 提 供 了 很 多 便 利 Maya 的 角 色 绑 定 工 作 还 是 比 较 有 难 度 的, 偏 技 术 性 强, 如 果 想 实 现 复 杂 的 动 画 效 果, 对 绑 定 的 要 求 也 会 很 高 如 果 让 美 术 制 作 人 员 手 动 去 绑 定 一 个 角 色, 可 能 要 一 周, 并 且 手 动 操 作 无 法 避 免 的 增 大 了 出 现 错 误 的 可 能 性 所 以, 我 们 开 发 了 Auto Rigging Tools 自 动 绑 定 工 具
Animation Rigging 自 动 绑 定 工 具 使 用 Python 开 发,Maya 从 Maya8.5 开 始 支 持 Python,Python 是 一 种 面 向 对 象 解 释 型 计 Session 算 机 程 序 设 Title 计 语 言,Python 语 法 也 很 简 洁 清 晰 该 工 具 提 供 了 可 能 遇 到 的 各 种 情 况, 比 如 不 同 的 手 指 个 数 脚 趾 个 数 脖 子 段 数 腰 部 段 数 骨 骼 数 量 的 精 细 度 等 等, 并 且 解 决 了 各 种 技 术 难 题 Speaker, 例 如 Name IK( 反 响 动 力 学 ) 和 FK( 前 向 动 力 学 ) 之 间 的 无 缝 切 换 表 情 动 画 的 自 动 化 实 现 布 料 解 算 系 统 头 发 解 算 系 统 等 首 先 看 一 下 我 们 工 具 的 UI
Animation Rigging 通 过 工 具 可 以 给 不 同 形 态 的 角 色 进 行 骨 骼 定 位, 只 需 简 单 的 3 个 步 骤, 即 可 自 动 生 成 一 套 手 动 操 作 需 Session 要 一 周 的 绑 Title 定, 如 上 图 所 示 并 且 自 动 生 成 了 各 种 形 象 的 nurbs curve 控 制 器, 方 便 动 画 师 进 行 各 种 动 画 的 实 现
Animation Rigging 现 在 一 个 核 心 的 问 题 是, 游 戏 引 起 里 参 与 蒙 皮 的 骨 骼 数 量 不 能 太 多, 否 则 严 重 影 响 运 行 效 率, 我 们 Session 会 在 优 化 骨 Title 骼 的 数 量, 一 般 角 色 在 30 个 骨 骼 左 右 同 样 也 是 使 用 Python 开 发 了 针 对 于 游 戏 骨 骼 优 化 的 工 具
Animation Rigging 对 于 一 款 次 世 代 格 斗 游 戏 来 说, 我 们 绝 不 满 足 于 传 统 手 机 游 戏 的 效 果 我 们 决 定 将 表 情 动 画 加 入 到 我 们 游 戏 的 主 角 当 中 去 一 开 始 我 们 想 到 的 是 使 用 骨 骼 来 制 作 表 情 动 画, 可 是 处 于 性 能 上 的 考 虑 Session, 这 可 能 使 Title 我 们 的 角 色 骨 骼 数 量 翻 倍, 降 低 了 运 行 效 率 幸 Speaker 运 的 是 Name Unity 支 持 BlendShape 变 形 器, 这 为 我 们 制 作 表 情 提 供 了 很 好 的 解 决 方 案 下 面 我 将 介 绍 Speaker 一 下 如 Title 何 & 在 Company Maya 中 制 作 BlendShape 表 情 绑 定 为 了 尽 可 能 的 达 到 效 果 和 性 能 上 的 平 衡, 我 们 一 个 角 色 的 表 情 目 标 体 控 制 在 8 个 左 右 这 几 个 不 同 的 目 标 体 通 过 我 们 的 控 制 器 面 板 实 现 各 种 融 合, 以 达 到 不 同 的 表 情 效 果
Animation Rigging 当 然 我 们 还 使 用 Unity 支 持 BlendShape 变 形 器 的 方 便, 为 极 限 动 作 设 计 的 一 种 纠 正 方 法, 主 要 是 使 用 驱 动 关 键 帧 的 mesh 点 的 位 移 来 实 现 骨 骼 的 纠 正 实 现 了 漂 亮 的 手 肘 和 近 乎 完 美 的 拳 头
4.Lightmap 4.1Ligthmap 的 意 义 和 效 果 4.2Lightmap 的 使 用 技 巧 方 法 4.3 如 何 获 得 优 质 的 Ligthmap( 印 象 派 艺 术 ):
4.1Ligthmap 的 意 义 和 效 果 首 先 我 们 要 了 解 光 线 与 介 质 : 1. 我 们 所 生 活 的 这 个 客 观 世 界, 是 存 在 于 介 质 之 中 的 例 如 : 空 气 水 尘 埃 和 雾 2. 我 Speaker 们 所 Title 存 在 & Company 和 生 活 的 这 个 世 界 的 光 线, 因 为 介 质 的 原 因, 存 在 衰 减 3. 光 线 透 过 介 质, 会 产 生 漫 反 射 4. 万 物 本 身 都 带 有 自 己 的 固 有 色, 同 时 又 因 为 光 线 的 漫 反 射, 自 身 的 色 彩 也 会 受 到 别 的 物 体 的 影 响
4.1Ligthmap 的 意 义 和 效 果 光 线 本 身 就 很 美, 而 LightMap 的 主 要 作 用 就 是 通 过, 贴 图 的 方 式 记 录 游 戏 中 的 光 线 的 信 息
4.2Lightmap 的 使 用 技 巧 方 法 光 线 本 身 就 很 美, 而 LightMap 的 主 要 作 用 就 是 通 过, 贴 图 的 方 式 记 录 游 戏 中 的 光 线 的 信 息 在 Unity3D 中, 我 们 使 用 LightMapping 技 术 对 场 景 进 行 灯 光 烘 培, 这 样 做 的 好 处 就 是 把 所 有 的 灯 光 效 果 参 数 通 过 把 这 些 数 据 烘 培 到 一 张 贴 图 上, 不 用 使 用 实 时 灯 光 就 可 以 实 现 照 明 效 果, 一 方 面 减 少 了 性 能 上 的 开 销, 另 一 方 面 让 整 个 场 景 有 非 常 真 实 的 柔 和 的 阴 影 效 果, 使 画 面 更 加 真 实 生 动 Unity5.X 版 本 采 用 的 是 PowerVR Ray Tracing 和 Enlighten 技 术, 所 以 Lighting Window 面 板 里 的 参 数 差 别 就 很 大 由 于 手 机 游 戏 会 压 缩 优 化 最 终 的 包 体 大 小 优 化 内 存 大 小 等, 在 我 们 的 游 戏 中, 我 们 对 场 景 进 行 灯 光 烘 培, 优 化 各 个 参 数, 最 终 只 使 用 一 张 光 照 贴 图 使 场 景 变 得 丰 富 真 实 下 面 我 们 详 细 介 绍 一 下 在 Unity3D 中 使 用 LightMap 制 作 出 次 世 代 效 果 的 技 巧 和 方 法
4.2Lightmap 的 使 用 技 巧 方 法 1. Lightmap Static: 必 须 把 烘 焙 的 物 体 设 置 成 静 态 2. Scale in Lightmap: 数 值 的 大 小 与 该 物 体 的 表 面 积 有 关, 这 个 值 影 响 烘 焙 时 间, 值 越 大 时 间 越 长 这 Session 个 值 也 影 响 光 Title 影 图 的 数 量 3. Preserve UVs: 如 果 物 体 没 有 在 3d 制 作 软 件 里 展 好 UV, 那 么 这 里 必 须 勾 选
4.2Lightmap 的 使 用 技 巧 方 法 1.Skybox: 会 直 接 影 响 你 的 环 境 光 2.Ambient Source: 环 境 源. 3.Ambient Intensity: 环 境 光 的 强 度 值, 也 就 是 环 境 光 的 亮 度 值 4.Reflection Session Source: Title 反 射 源, 这 是 Unity4.X 里 没 有 的 烘 焙 后 会 在 场 景 文 件 的 同 名 文 件 夹 中 多 出 一 个 名 为 LightmapSnapshot 的 文 件 5.Realtime Resolution: 实 时 分 辨 率, 这 个 物 体 所 产 生 的 GI 对 其 它 物 体 Speaker 的 影 响 程 Title 度,& 值 Company 越 大 影 响 越 大 6.Baked Resolution 的 参 数 值 调 成 1 后, 阴 影 的 边 变 的 很 虚 了 7.Indirect Intensity: 间 接 强 度, 这 个 和 unity4.x 里 的 参 数 有 些 像, 可 以 简 单 的 理 解 为 光 的 反 射 强 度 8.Bounce Boost: 反 弹 强 度, 同 一 单 位 面 积 内 增 大 光 的 反 射 数 量, 相 比 较 来 说, 这 个 值 增 大 会 直 接 影 响 渲 染 时 间 9.Default Parameters: 默 认 参 数, 这 里 还 可 以 自 己 创 建 自 己 的 参 数 一 般 情 况 在 预 烘 焙 时 选 择 最 低 设 置 10.Atlas Size: 烘 焙 图 的 大 小, 以 前 4.X 版 本 只 能 通 过 脚 本 来 调 整, 现 在 好 了
4.2Lightmap 的 使 用 技 巧 方 法 这 里 需 要 注 意 的 是 Baking 选 项 里 要 设 置 成 Baked, 否 则 烘 焙 不 起 作 用 剩 下 的 两 个 参 数, 基 本 和 Unity4.X 的 参 数 功 能 相 同 Speaker 最 后 说 一 Name 下, 下 面 这 几 个 参 数 一 定 要 注 意, 它 们 影 响 烘 焙 速 度 和 光 影 图 数 量 Scale Speaker In Title Lightmap & Company Realtime Resolution Baked Resolution Atlas Size 总 体 来 讲 要 想 提 高 烘 焙 速 度, 就 从 这 Scale In Lightmap Realtime Resolution Baked Resolution 三 个 参 数 入 手 基 本 就 可 以 了 这 几 个 参 数 配 合 着 调 整, 比 如 烘 出 多 张 图 时, 可 以 降 低 使 Baked Resolution, 或 者 提 高 Atlas Size 等 方 法 使 其 LightMap 只 烘 在 一 张 图 上, 哪 怕 尺 寸 大 也 没 关 系, 可 以 通 过 图 片 优 化 设 置 对 其 进 行 优 化
4.3 如 何 获 得 优 质 的 Ligthmap( 印 象 派 艺 术 ) 在 这 之 前 我 们 先 要 说 说 印 象 派, 印 象 派 是 基 于 对 光 线 的 科 学 认 知 之 后, 对 于 美 术 界 产 生 的 深 远 影 响 从 印 象 派 之 后, 人 们 对 于 画 面 的 理 解 更 进 了 一 步 所 以 我 们 在 讨 论 游 戏 美 术 的 画 面 的 时 候 是 绕 不 开 印 象 派 的 印 象 派 对 于 色 彩 的 理 解 是 从 感 性 到 理 性 的 一 个 认 知
4.2Lightmap 的 使 用 技 巧 方 法 大 家 知 道 著 名 的 动 画 电 影 工 作 室 PIXAR 的 作 品, 他 们 在 90 年 代 末 出 现 的 作 品 跟, 别 的 公 司 之 间, 除 了 剧 情 的 优 势 之 外, 在 场 景 美 术 方 面 也 看 得 出 来 具 备 了 很 大 的 不 同 因 为 他 们 熟 知 印 象 派 对 于 场 景 中 的 光 线 色 彩 漫 射 衰 减 以 及 阴 影 处 理 方 面 的 这 些 方 法 论
4.2Lightmap 的 使 用 技 巧 方 法 所 以, 我 们 在 制 作 Lightmap 的 时 候 不 得 不 去 考 虑 这 些 客 观 存 在 的 自 然 现 象, 我 们 可 以 通 过 大 量 的 灯 光 和 各 种 各 样 的 有 色 彩 的 光 线 去 烘 焙 模 拟 环 境 色 阴 影 漫 反 射 等 等 自 研 现 象, 来 丰 富 我 们 游 戏 场 景 的 颜 色 从 而 通 过 一 张 简 单 的 Lightmap 获 得 在 场 景 中 丰 富 的 色 彩 和 阴 影
第 二 部 分 次 世 代 手 游 如 何 优 化 1.CPU 方 面 的 优 化 2.GPU 方 面 的 优 化
次 世 代 手 游 美 术 资 源 的 优 化 为 什 么 要 优 化 科 技 发 Speaker 展 日 新 Name 月 异, 手 机 硬 件 也 在 不 断 升 级 优 化, 这 使 得 我 们 可 以 在 移 动 端 上 实 现 次 世 代 游 戏 的 画 面 效 果 由 于 还 是 收 到 一 些 Speaker 硬 件 限 Title 制 & 的 Company 瓶 颈, 我 们 不 可 能 像 之 前 制 作 主 机 游 戏 那 样 肆 意 浪 费 随 心 所 欲, 必 须 要 优 化 处 理 各 种 美 术 资 源, 以 便 在 不 同 的 平 台 不 同 的 硬 件 终 端 上 有 一 个 好 的 游 戏 体 验 根 据 我 们 游 戏 的 一 些 经 验, 我 将 一 些 美 术 资 源 的 优 化 点 和 大 家 分 享 一 下
次 世 代 手 游 美 术 资 源 的 优 化 性 能 瓶 颈 有 哪 些 首 先, 我 们 得 了 解, 影 响 游 戏 性 能 的 因 素 哪 些, 才 能 对 症 下 药 对 于 一 个 游 戏 来 说, 有 两 种 主 要 的 计 算 资 源 :CPU 和 GPU 它 们 会 互 相 合 作, 来 让 我 们 的 游 戏 可 以 在 预 期 的 帧 率 和 分 辨 率 下 工 作 CPU 负 责 其 中 的 帧 率,GPU 主 要 负 责 分 辨 率 Speaker 相 关 的 一 Name 些 东 西 总 Speaker 结 起 来 Title, 主 & 要 Company 的 性 能 瓶 颈 在 于 : CPU 过 多 的 Draw Calls 复 杂 的 脚 本 或 者 物 理 模 拟 GPU 填 充 率 : 图 形 处 理 单 元 每 秒 渲 染 的 像 素 数 量 像 素 的 复 杂 度 : 比 如 动 态 阴 影, 光 照, 复 杂 的 shader 等 等 几 何 体 的 复 杂 度 : 顶 点 数 量 GPU 的 显 存 带 宽
次 世 代 手 游 美 术 资 源 的 优 化 涉 及 的 优 化 技 术 对 于 CPU 来 说, 限 制 它 的 主 要 是 游 戏 中 的 Draw Calls, 那 么 什 么 是 Draw Call 呢? DrawCall 是 CPU 调 用 底 层 图 形 接 口 比 如 Speaker 有 上 千 个 Name 物 体, 每 一 个 的 渲 染 都 需 要 去 调 用 一 次 底 层 接 口, 而 每 一 次 的 调 用 CPU 都 需 要 做 很 多 工 作, 那 么 CPU 必 然 不 堪 重 负 Speaker 但 是 Title 对 于 & GPU Company 来 说, 图 形 处 理 的 工 作 量 是 一 样 的 所 以 对 DrawCall 的 优 化, 主 要 就 是 为 了 尽 量 解 放 CPU 在 调 用 图 形 接 口 上 的 开 销 上 面 说 到 过, 我 们 想 要 绘 制 图 像 时, 就 一 定 需 要 调 用 Draw Call 例 如, 一 个 场 景 里 有 水 有 树, 我 们 渲 染 水 的 时 候 使 用 的 是 一 个 material 以 及 一 个 shader, 但 渲 染 树 的 时 候 就 需 要 一 个 完 全 不 同 的 material 和 shader, 那 么 就 需 要 CPU 重 新 准 备 顶 点 数 据 重 新 设 置 shader, 而 这 种 工 作 实 际 是 非 常 耗 时 的 如 果 场 景 中, 每 一 个 物 体 都 使 用 不 同 的 material 不 同 的 纹 理, 那 么 就 会 产 生 太 多 Draw Call, 影 响 帧 率, 游 戏 性 能 就 会 下 降 其 他 CPU 的 性 能 瓶 颈 还 有 物 理 布 料 模 拟 粒 子 模 拟 等, 都 是 计 算 量 很 大 的 操 作 而 对 于 GPU 来 说, 它 负 责 整 个 渲 染 流 水 线 它 会 从 处 理 CPU 传 递 过 来 的 模 型 数 据 开 始, 进 行 Vertex Shader Fragment Shader 等 一 系 列 工 作, 最 后 输 出 屏 幕 上 的 每 个 像 素 因 此 它 的 性 能 瓶 颈 可 能 和 需 要 处 理 的 顶 点 数 目 的 屏 幕 分 辨 率 显 存 等 因 素 有 关 总 体 包 含 了 顶 点 和 像 素 两 方 面 的 性 能 瓶 颈 了 解 了 上 面 基 本 的 内 容 后, 下 面 涉 及 到 的 优 化 技 术 有 : CPU 优 化 1. 减 少 Draw Call 数 量 GPU 优 化 1. 顶 点 数 优 化 2. 像 素 优 化 3. 带 宽 优 化
1.CPU 的 优 化 1.1 减 少 Draw Call 数 量
次 世 代 手 游 美 术 资 源 的 优 化 减 少 Draw Call 数 量 1. 批 处 理 (Batching) Speaker 最 常 Name 见 的 就 是 通 过 批 处 理 (Batching) 了 从 名 字 上 来 理 解, 就 是 一 块 处 理 多 个 物 体 的 意 思 那 么 什 么 样 的 物 体 可 以 一 起 Speaker 处 理 呢 Title? 答 & Company 案 就 是 使 用 同 一 个 材 质 的 物 体 因 此, 对 于 使 用 同 一 个 材 质 的 物 体, 它 们 之 间 的 不 同 仅 仅 在 于 顶 点 数 据 的 差 别, 即 使 用 的 网 格 不 同 而 已 我 们 可 以 把 这 些 顶 点 数 据 合 并 在 一 起, 再 一 起 发 送 给 GPU, 就 可 以 完 成 一 次 批 处 理 Unity 中 有 两 种 批 处 理 方 式 : 一 种 是 动 态 批 处 理, 一 种 是 静 态 批 处 理 对 于 动 态 批 处 理 来 说, 好 消 息 是 一 切 处 理 都 是 自 动 的, 不 需 要 我 们 自 己 做 任 何 操 作, 而 且 物 体 是 可 以 移 动 的, 但 坏 消 息 是, 限 制 很 多, 可 能 一 不 小 心 我 们 就 会 破 坏 了 这 种 机 制, 导 致 Unity 无 法 批 处 理 一 些 使 用 了 相 同 材 质 的 物 体 对 于 静 态 批 处 理 来 说, 好 消 息 是 自 由 度 很 高, 限 制 很 少, 坏 消 息 是 可 能 会 占 用 更 多 的 内 存, 而 且 经 过 静 态 批 处 理 后 的 所 有 物 体 都 不 可 以 再 移 动 了 首 先 来 说 动 态 批 处 理 Unity 进 行 动 态 批 处 理 的 条 件 是, 物 体 使 用 同 一 个 材 质 并 且 满 足 一 些 特 定 条 件 Unity 总 是 在 不 知 不 觉 中 就 为 我 们 做 了 动 态 批 处 理 动 态 批 处 理 虽 然 自 动 得 令 人 感 动, 但 它 对 模 型 的 要 求 很 多 : 1. 顶 点 属 性 的 最 大 限 制 为 900 2. 物 体 都 必 须 需 要 使 用 同 一 个 缩 放 尺 度 ( 可 以 是 (1, 1, 1) (1, 2, 3) (1.5, 1.4, 1.3) 等 等, 但 必 须 都 一 样 ) 但 如 果 是 非 统 一 缩 放 ( 即 每 个 维 度 的 缩 放 尺 度 不 一 样, 例 如 (1, 2, 1)), 那 么 如 果 所 有 的 物 体 都 使 用 不 同 的 非 统 一 缩 放 也 是 可 以 批 处 理 的 3. 使 用 lightmap 的 物 体 不 会 动 态 批 处 理 多 passes 的 shader 会 中 断 批 处 理 接 受 实 时 阴 影 的 物 体 也 不 会 批 处 理
次 世 代 手 游 美 术 资 源 的 优 化 减 少 Draw Call 数 量 动 态 批 处 理 的 条 件 这 么 多, 因 此 Unity 提 供 了 另 一 个 方 法, 静 态 批 处 理 方 法 Speaker 很 简 单 Name, 只 需 把 物 体 的 Static Flag 勾 选 上 有 Speaker 一 些 小 Title 提 示 & Company 可 以 使 用 : 1. 尽 可 能 选 择 静 态 批 处 理, 但 得 时 刻 小 心 对 内 存 的 消 耗 2. 如 果 无 法 进 行 静 态 批 处 理, 而 要 使 用 动 态 批 处 理 的 话, 那 么 请 小 心 上 面 提 到 的 各 种 注 意 事 项 例 如 : 2.1 尽 可 能 让 这 样 的 物 体 少 并 且 尽 可 能 让 这 些 物 体 包 含 少 量 的 顶 点 属 性 2.2 不 要 使 用 统 一 缩 放, 或 者 都 使 用 不 同 的 非 统 一 缩 放 3. 对 于 游 戏 中 的 小 道 具, 可 以 使 用 动 态 批 处 理 4. 对 于 包 含 动 画 的 这 类 物 体, 我 们 无 法 全 部 使 用 静 态 批 处 理, 但 其 中 如 果 有 不 动 的 部 分, 可 以 把 这 部 分 标 识 成 Static
次 世 代 手 游 美 术 资 源 的 优 化 减 少 Draw Call 数 量 合 并 纹 理 虽 然 批 处 理 是 个 很 好 的 方 式, 但 很 容 易 就 打 破 它 的 规 定 例 如, 场 景 中 的 物 体 都 使 用 Diffuse 材 质, 但 Speaker 它 们 可 Name 能 会 使 用 不 同 的 纹 理 因 此, 尽 可 能 把 多 张 小 纹 理 合 并 到 一 张 大 纹 理 (Atlas) 中 是 一 个 好 主 Speaker 意 例 Title 如 我 & Company 们 将 多 个 敌 兵 的 贴 图 合 并 到 一 个 图 集 中 具 体 内 容 后 面 我 们 会 讲 到
2.GPU 的 优 化 2.1 顶 点 优 化 2.1.1 优 化 Mesh, 减 少 顶 点 数 量 2.1.2 LOD(Level of detail) 技 术 2.1.3 遮 挡 剔 除 (Occlusion culling) 技 术 2.2 像 素 优 化 2.2.1 控 制 绘 制 顺 序 2.2.2 警 惕 透 明 物 体 的 使 用 2.2.3 尽 量 避 免 实 时 光 照 2.3 带 宽 优 化 2.3.1 使 用 Texture Atlas 2.3.2 关 于 Generate Mip Maps 2.3.3 优 化 纹 理 尺 寸 大 小 压 缩 格 式
次 世 代 手 游 美 术 资 源 的 优 化 顶 点 优 化 优 化 Mesh, 减 少 顶 点 数 量 3D 游 戏 制 作 都 由 模 型 制 作 开 始 而 在 建 模 时, 有 一 条 我 们 需 要 记 住 Speaker : 尽 可 Name 能 减 少 模 型 中 三 角 形 的 数 目, 一 些 对 于 模 型 没 有 影 响 或 Speaker 是 肉 眼 Title 非 常 & Company 难 察 觉 到 区 别 的 顶 点 都 要 尽 可 能 去 掉 例 如 在 下 面 左 图 中, 正 方 体 内 部 很 多 顶 点 都 是 不 需 要 的, 而 把 这 个 模 型 导 入 到 Unity 里 就 会 是 右 面 的 情 景 : 在 Game 视 图 下, 我 们 可 以 查 看 场 景 中 的 三 角 形 数 目 和 顶 点 数 目 可 以 看 到 一 个 简 单 的 正 方 形 就 产 生 了 这 么 多 顶 点, 这 是 我 们 不 希 望 看 到 的 同 时, 尽 可 能 重 用 顶 点 在 很 多 三 维 建 模 软 件 中, 都 有 相 应 的 优 化 选 项, 可 以 自 动 优 化 网 格 结 构 最 后 优 化 后, 一 个 正 方 体 可 能 只 剩 下 8 个 顶 点
次 世 代 手 游 美 术 资 源 的 优 化 顶 点 优 化 LOD(Level of detail) 技 术 LOD 技 术 有 点 类 似 于 Mipmap 技 术, 不 同 的 是,LOD 是 对 模 型 建 立 了 Speaker 一 个 模 Name 型 金 字 塔, 根 据 摄 像 机 距 离 对 象 的 远 近, 选 择 使 用 不 同 精 Speaker 度 的 模 Title 型 & Company 它 的 好 处 是 可 以 在 适 当 的 时 候 大 量 减 少 需 要 绘 制 的 顶 点 数 目 它 的 缺 点 同 样 是 需 要 占 用 更 多 的 内 存, 而 且 如 果 没 有 调 整 好 距 离 的 话, 可 能 会 造 成 模 拟 的 突 变 在 Unity 中, 可 以 通 过 LOD Group 来 实 现 LOD 技 术 通 过 上 面 的 LOD Group 面 板, 我 们 可 以 选 择 需 要 控 制 的 模 型 以 及 距 离 设 置 下 面 展 示 了 油 桶 从 一 个 完 整 网 格 到 简 化 网 格, 最 后 完 全 被 剔 除 的 例 子 :
次 世 代 手 游 美 术 资 源 的 优 化 顶 点 优 化 遮 挡 剔 除 (Occlusion culling) 技 术 遮 挡 剔 除 是 用 来 消 除 躲 在 其 他 物 件 后 面 看 不 到 的 物 件, 这 代 表 资 源 Speaker 不 会 浪 Name 费 在 计 算 那 些 看 不 到 的 顶 点 上, 进 而 提 升 性 能
次 世 代 手 游 美 术 资 源 的 优 化 像 素 优 化 控 制 绘 制 顺 序 像 素 优 化 的 重 点 在 于 减 少 overdraw 之 前 提 过,overdraw 指 的 就 是 一 Speaker 个 像 素 被 Name 绘 制 了 多 次 关 键 在 于 控 制 绘 制 顺 序 Speaker Title Unity & Company 还 提 供 了 查 看 overdraw 的 视 图 当 然 这 里 的 视 图 只 是 提 供 了 查 看 物 体 遮 挡 的 层 数 关 系, 并 不 是 真 正 的 最 终 屏 幕 绘 制 的 overdraw 也 就 是 说, 可 以 理 解 为 它 显 示 的 是 如 果 没 有 使 用 任 何 深 度 检 验 时 的 overdraw 这 种 视 图 是 通 过 把 所 有 对 象 都 渲 染 成 一 个 透 明 的 轮 廓, 通 过 查 看 透 明 颜 色 的 累 计 程 度, 来 判 断 物 体 的 遮 挡 右 图, 红 色 越 是 浓 重 的 地 方 表 示 Overdraw 越 严 重 需 要 控 制 绘 制 顺 序, 主 要 原 因 是 为 了 最 大 限 度 的 避 免 overdraws, 也 就 是 同 一 个 位 置 的 像 素 可 以 需 要 被 绘 制 多 变 在 PC 上, 资 源 无 限, 为 了 得 到 最 准 确 的 渲 染 结 果, 绘 制 顺 序 可 能 是 从 后 往 前 绘 制 不 透 明 物 体, 然 后 再 绘 制 透 明 物 体 进 行 混 合 但 在 移 动 平 台 上, 这 种 会 造 成 大 量 overdraw 的 方 式 显 然 是 不 适 合 的, 我 们 应 该 尽 量 从 前 往 后 绘 制 从 前 往 后 绘 制 之 所 以 可 以 减 少 overdraw, 都 是 因 为 深 度 检 验 的 功 劳 在 Unity 中, 那 些 Shader 中 被 设 置 为 Geometry 队 列 的 对 象 总 是 从 前 往 后 绘 制 的, 而 其 他 固 定 队 列 ( 如 Transparent Overla 等 ) 的 物 体, 则 都 是 从 后 往 前 绘 制 的 这 意 味 这, 我 们 可 以 尽 量 把 物 体 的 队 列 设 置 为 Geometry 而 且, 我 们 还 可 以 充 分 利 用 Unity 的 队 列 来 控 制 绘 制 顺 序 例 如, 对 于 天 空 盒 子 来 说, 它 几 乎 覆 盖 了 所 有 的 像 素, 而 且 我 们 知 道 它 永 远 会 在 所 有 物 体 的 后 面, 因 此 它 的 队 列 可 以 设 置 为 Geometry+1 这 样, 就 可 以 保 证 不 会 因 为 它 而 造 成 overdraws
次 世 代 手 游 美 术 资 源 的 优 化 像 素 优 化 警 惕 透 明 物 体 的 使 用 对 于 透 明 对 象, 由 于 它 本 身 的 特 性 决 定 如 果 要 得 到 正 确 的 渲 染 效 果, 就 Speaker 必 须 从 后 Name 往 前 渲 染 ( 这 里 不 讨 论 使 用 深 度 的 方 法 ), 而 且 抛 弃 了 深 度 检 验 这 意 Speaker 味 着, 透 Title 明 物 & 体 Company 几 乎 一 定 会 造 成 overdraws 如 果 我 们 不 注 意 这 一 点, 在 一 些 机 器 上 可 能 会 造 成 严 重 的 性 能 损 失 例 如, 对 于 GUI 对 象 来 说, 它 们 大 多 被 设 置 成 了 半 透 明, 如 果 屏 幕 中 GUI 占 据 的 比 例 太 多, 而 主 摄 像 机 又 没 有 进 行 调 整 而 是 投 影 整 个 屏 幕, 那 么 GUI 就 会 造 成 屏 幕 的 大 量 overdraws 因 此, 如 果 场 景 中 大 面 积 的 透 明 对 象, 或 者 有 很 多 层 覆 盖 的 多 层 透 明 对 象 ( 即 便 它 们 每 个 的 面 积 可 以 都 不 大 ), 或 者 是 透 明 的 粒 子 效 果, 在 移 动 设 备 上 也 会 造 成 大 量 的 overdraws 这 是 应 该 尽 量 避 免 的 对 于 上 述 GUI 的 这 种 情 况, 我 们 可 以 尽 量 减 少 窗 口 中 GUI 所 占 的 面 积 如 果 实 在 无 能 为 力, 我 们 可 以 把 GUI 绘 制 和 三 维 场 景 的 绘 制 交 给 不 同 的 摄 像 机, 而 其 中 负 责 三 维 场 景 的 摄 像 机 的 视 角 范 围 尽 量 不 要 和 GUI 重 叠 对 于 其 他 情 况, 只 能 说, 尽 可 能 少 用 当 然 这 样 会 对 游 戏 的 美 观 度 产 生 一 定 影 响, 因 此 我 们 可 以 在 代 码 中 对 机 器 的 性 能 进 行 判 断, 例 如 首 先 关 闭 所 有 的 耗 费 性 能 的 功 能, 如 果 发 现 这 个 机 器 表 现 非 常 良 好, 再 尝 试 开 启 一 些 特 效 功 能
次 世 代 手 游 美 术 资 源 的 优 化 像 素 优 化 尽 量 避 免 实 时 光 照 实 时 光 照 对 于 移 动 平 台 是 个 非 常 昂 贵 的 操 作 如 果 只 有 一 Speaker 个 平 行 Name 光 还 好, 但 如 果 场 景 中 包 含 了 太 多 光 源 并 且 使 用 了 很 多 多 Passes 的 shader, 那 么 很 有 可 能 会 造 成 性 能 下 降 而 且 在 有 些 机 器 上, 还 要 面 临 shader 失 效 的 风 险 例 如, 一 个 场 景 里 如 果 包 含 了 三 个 逐 像 素 的 点 光 源, 而 且 使 用 了 逐 像 素 的 shader, 那 么 很 有 可 能 将 Draw Calls 提 高 了 三 倍, 同 时 也 会 增 加 overdraws 这 是 因 为, 对 于 逐 像 素 的 光 源 来 说, 被 这 些 光 源 照 亮 的 物 体 要 被 再 渲 染 一 次 更 糟 糕 的 是, 无 论 是 动 态 批 处 理 还 是 静 态 批 处 理, 对 于 这 种 逐 像 素 的 pass 都 无 法 进 行 批 处 理, 也 就 是 说, 它 们 会 中 断 批 处 理 我 们 看 到 很 多 成 功 的 移 动 游 戏, 它 们 的 画 面 效 果 看 起 来 好 像 包 含 了 很 多 光 源, 但 其 实 这 都 是 骗 人 的
次 世 代 手 游 美 术 资 源 的 优 化 带 宽 优 化 Texture Atlas 使 用 Texture Atlas 可 以 帮 助 减 少 Draw Calls, Speaker 而 Name 这 些 纹 理 的 大 小 同 样 是 一 个 需 要 Speaker 考 虑 的 Title 问 题 & Company 在 这 之 前 要 提 到 一 个 问 题 就 是, 所 有 纹 理 的 长 宽 比 最 好 是 正 方 形, 而 且 长 度 值 最 好 是 2 的 整 数 幂 这 是 因 为 有 很 多 优 化 策 略 只 有 在 这 种 时 候 才 可 以 发 挥 最 大 效 用 右 图 是 Unity 中 查 看 纹 理 参 数 可 以 通 过 纹 理 的 面 板 我 们 尽 量 把 一 个 场 景 单 独 使 用 的 模 型 贴 图, 合 并 到 一 起, 有 经 验 的 美 工 在 分 UV 贴 图 制 作 是 就 已 经 充 分 考 虑 到 了 这 一 点
次 世 代 手 游 美 术 资 源 的 优 化 带 宽 优 化 Generate Mip Maps Generate Mip Maps 会 为 同 一 张 纹 理 创 建 出 很 多 不 同 大 小 的 小 纹 理, 构 成 一 个 纹 理 金 字 塔 而 在 游 戏 中 可 以 根 据 距 离 物 体 的 远 近, 来 动 态 选 择 使 用 哪 一 个 纹 理 Speaker Title 这 & 是 Company 因 为, 在 距 离 物 体 很 远 的 时 候, 就 算 我 们 使 用 了 非 常 精 细 的 纹 理, 但 肉 眼 也 是 分 辨 不 出 来 的, 这 种 时 候 完 全 可 以 使 用 更 小 更 模 糊 的 纹 理 来 代 替, 而 这 大 量 可 以 节 省 访 问 的 像 素 的 数 目 但 它 的 缺 点 是, 由 于 需 要 为 每 一 个 纹 理 建 立 一 个 图 像 金 字 塔, 因 此 它 会 需 要 占 用 更 多 的 内 存 在 我 们 的 项 目 中, 因 为 摄 像 机 在 Z 轴 方 向 是 不 动 的, 所 以 我 们 为 了 降 低 内 存 使 用, 没 有 使 用 MipMaps 例 如 上 面 的 例 子, 在 勾 选 Generate Mip Maps 前, 内 存 占 用 是 0.5M, 而 勾 选 了 Generate Mip Maps 后, 就 变 成 了 0.7M 除 了 内 存 的 占 用 以 外, 一 些 时 候 我 们 也 不 希 望 使 用 MipMaps, 例 如 GUI 纹 理 等 我 们 还 可 以 在 面 板 中 查 看 生 成 的 Mip Maps: Unity 中 还 提 供 了 查 看 场 景 中 物 体 的 Mip Maps 的 使 用 情 况 更 确 切 的 说 是, 展 示 了 物 体 理 想 的 纹 理 大 小 其 中 红 色 表 示 这 个 物 体 可 以 使 用 更 小 的 纹 理, 蓝 色 表 示 应 该 使 用 更 大 的 纹 理
次 世 代 手 游 美 术 资 源 的 优 化 带 宽 优 化 优 化 纹 理 尺 寸 大 小 压 缩 格 式 纹 理 尺 寸 大 小 : 纹 理 尺 寸 大 小 通 过 MaxSize 设 置, 它 决 定 了 纹 理 的 长 宽 值, 如 果 我 们 使 用 的 纹 Speaker 理 本 身 超 Name 过 了 这 个 最 大 值,Unity 会 对 其 进 行 缩 小 来 满 足 这 个 条 件 这 Speaker 里 特 别 Title 说 明 & 一 Company 点, 所 有 纹 理 的 长 宽 比 最 好 是 正 方 形, 而 且 长 度 值 最 好 是 2 的 整 数 幂, 例 如 64 128 256 512 1024 等 这 是 因 为 有 很 多 优 化 策 略 只 有 在 这 种 时 候 才 可 以 发 挥 最 大 效 用 压 缩 格 式 : 压 缩 格 式 通 过 Format 设 置,Format 负 责 纹 理 使 用 的 压 缩 模 式 通 常 选 择 这 种 自 动 模 式 就 可 以 了,Unity 会 负 责 根 据 不 同 的 平 台 来 选 择 合 适 的 压 缩 模 式 而 对 于 GUI 类 型 的 纹 理, 我 们 可 以 根 据 对 画 质 的 要 求 来 选 择 是 否 进 行 压 缩 我 们 还 可 以 根 据 不 同 的 机 器 来 选 择 使 用 不 同 分 辨 率 的 纹 理, 以 便 让 游 戏 在 某 些 老 机 器 上 也 可 以 运 行 例 如 在 Android 平 台 上, 我 们 的 压 缩 模 式 会 采 用 RGB Compressed ETC 4 Bits, 在 IOS 平 台 上, 我 们 采 用 的 压 缩 模 式 是 RGB Compressed PVRTC 4 Bits 开 发 贴 图 自 动 优 化 工 具 : 关 于 贴 图 的 优 化, 上 面 的 一 些 操 作, 会 让 美 术 制 作 人 员 感 到 反 感, 我 们 做 了 一 个 很 简 洁 的 工 具 它 自 动 调 整 贴 图 size format Mip Maps 选 项 等, 只 需 在 Project View 里 选 择 需 要 优 化 的 帖 图 文 件, 点 击 按 钮 即 可