ID Tech 5中"Mega Texture"针对地形的D3D9基本实现原理



Similar documents
何 秋 琳 张 立 春 视 觉 学 习 研 究 进 展 视 觉 注 意 视 觉 感 知

Microsoft Word - 第7章 图表反转形态.doc

说 明 为 了 反 映 教 运 行 的 基 本 状 态, 为 校 和 院 制 定 相 关 政 策 和 进 行 教 建 设 与 改 革 提 供 据 依 据, 校 从 程 资 源 ( 开 类 别 开 量 规 模 ) 教 师 结 构 程 考 核 等 维 度, 对 2015 年 春 季 期 教 运 行 基

龚 亚 夫 在 重 新 思 考 基 础 教 育 英 语 教 学 的 理 念 一 文 中 援 引 的 观 点 认 为 当 跳 出 本 族 语 主 义 的 思 维 定 式 后 需 要 重 新 思 考 许 多 相 连 带 的 问 题 比 如 许 多 发 音 的 细 微 区 别 并 不 影 响 理 解 和

导 数 和 微 分 的 概 念 导 数 的 几 何 意 义 和 物 理 意 义 函 数 的 可 导 性 与 连 续 性 之 间 的 关 系 平 面 曲 线 的 切 线 和 法 线 导 数 和 微 分 的 四 则 运 算 基 本 初 等 函 数 的 导 数 复 合 函 数 反 函 数 隐 函 数 以


,,,,, :,, (.,, );, (, : ), (.., ;. &., ;.. &.., ;, ;, ),,,,,,, ( ) ( ),,,,.,,,,,, : ;, ;,.,,,,, (., : - ),,,, ( ),,,, (, : ),, :,

Microsoft Word - 文件汇编.doc

采 取 行 动 的 机 会 90% 开 拓 成 功 的 道 路 2

0 年 上 半 年 评 价 与 考 核 细 则 序 号 部 门 要 素 值 考 核 内 容 考 核 方 式 考 核 标 准 考 核 ( 扣 原 因 ) 考 评 得 3 安 全 生 产 目 30 无 同 等 责 任 以 上 道 路 交 通 亡 人 事 故 无 轻 伤 责 任 事 故 无 重 大 质 量

( ) 信 号 与 系 统 Ⅰ 学 科 基 础 必 修 课 教 周 2016 年 06 月 13 日 (08:00-09:35) ( )

<4D F736F F D C4EAB9A4B3CCCBB6CABFCAFDD1A7D7A8D2B5BFCEBFBCCAD4B4F3B8D9D3EBD2AAC7F3>

一 公 共 卫 生 硕 士 专 业 学 位 论 文 的 概 述 学 位 论 文 是 对 研 究 生 进 行 科 学 研 究 或 承 担 专 门 技 术 工 作 的 全 面 训 练, 是 培 养 研 究 生 创 新 能 力, 综 合 运 用 所 学 知 识 发 现 问 题, 分 析 问 题 和 解 决

深圳市新亚电子制程股份有限公司

<4D F736F F D D323630D6D0B9FAD3A6B6D4C6F8BAF2B1E4BBAFB5C4D5FEB2DFD3EBD0D0B6AF C4EAB6C8B1A8B8E6>

一 开 放 性 的 政 策 与 法 规 二 两 岸 共 同 的 文 化 传 承 三 两 岸 高 校 各 自 具 有 专 业 优 势 远 见 杂 志 年 月 日


 编号:

一 从 分 封 制 到 郡 县 制 一 从 打 虎 亭 汉 墓 说 起

Microsoft Word - 资料分析练习题09.doc

类 似 地, 又 可 定 义 变 下 限 的 定 积 分 : ( ). 与 ψ 统 称 为 变 限 积 分. f ( ) d f ( t) dt,, 注 在 变 限 积 分 (1) 与 () 中, 不 可 再 把 积 分 变 量 写 成 的 形 式 ( 例 如 ) 以 免 与 积 分 上 下 限 的

HSK( 一 级 ) 考 查 考 生 的 日 常 汉 语 应 用 能 力, 它 对 应 于 国 际 汉 语 能 力 标 准 一 级 欧 洲 语 言 共 同 参 考 框 架 (CEF) A1 级 通 过 HSK( 一 级 ) 的 考 生 可 以 理 解 并 使 用 一 些 非 常 简 单 的 汉 语

第 期 李 伟 等 用 方 法 对 中 国 历 史 气 温 数 据 插 值 可 行 性 讨 论

评 委 : 李 炎 斌 - 个 人 技 术 标 资 信 标 初 步 审 查 明 细 表 序 号 投 标 单 位 投 标 函 未 按 招 标 文 件 规 定 填 写 漏 填 或 内 容 填 写 错 误 的 ; 不 同 投 标 人 的 投 标 文 件 由 同 一 台 电 脑 或 同 一 家 投 标 单

2006年顺德区高中阶段学校招生录取分数线


中 国 软 科 学 年 第 期!!!

Microsoft Word - 第3章.doc

I

<4D F736F F D20B9D8D3DAB0BABBAAA3A8C9CFBAA3A3A9D7D4B6AFBBAFB9A4B3CCB9C9B7DDD3D0CFDEB9ABCBBE C4EAC4EAB6C8B9C9B6ABB4F3BBE1B7A8C2C9D2E2BCFBCAE92E646F6378>

《C语言基础入门》课程教学大纲

第二讲 数列

马 克 思 主 义 公 正 观 的 基 本 向 度 及 方 法 论 原 则!! # #

ETF、分级基金规模、份额变化统计

修改版-操作手册.doc

Template BR_Rec_2005.dot

上证指数

评 委 : 徐 岩 宇 - 个 人 技 术 标 资 信 标 初 步 审 查 明 细 表 序 号 投 标 单 位 投 标 函 未 按 招 标 文 件 规 定 填 写 漏 填 或 内 容 填 写 错 误 的 ; 不 同 投 标 人 的 投 标 文 件 由 同 一 台 电 脑 或 同 一 家 投 标 单


3 月 30 日 在 中 国 证 券 报 上 海 证 券 报 证 券 时 报 证 券 日 报 和 上 海 证 券 交 易 所 网 站 上 发 出 召 开 本 次 股 东 大 会 公 告, 该 公 告 中 载 明 了 召 开 股 东 大 会 的 日 期 网 络 投 票 的 方 式 时 间 以 及 审

金 不 少 于 800 万 元, 净 资 产 不 少 于 960 万 元 ; (3) 近 五 年 独 立 承 担 过 单 项 合 同 额 不 少 于 1000 万 元 的 智 能 化 工 程 ( 设 计 或 施 工 或 设 计 施 工 一 体 ) 不 少 于 2 项 ; (4) 近 三 年 每 年

西 南 民 族 学 院 学 报 哲 学 社 会 科 学 版 第 卷 资 料 来 源 中 国 统 计 年 鉴 年 年 新 中 国 五 十 年 统 计 资 料 汇 编 中 国 人 口 统 计 年 鉴 年 数 据 资 料 来 源 中 国 统 计 年 鉴 中 国 统 计 出 版 社 年 版 资 料 来 源

( 二 ) 现 行 统 一 高 考 制 度 不 利 于 培 养 人 的 创 新 精 神,,,,,,,,,,,,, [ ],,,,,,,,,,, :, ;,,,,,,? ( 三 ) 现 行 统 一 高 考 制 度 不 利 于 全 体 学 生 都 获 得 全 面 发 展,, [ ],,,,,,,,,,,

黄 金 原 油 总 持 仓 增 长, 同 比 增 幅 分 别 为 4.2% 和 4.1% 而 铜 白 银 以 及 玉 米 则 出 现 减 持, 减 持 同 比 减 少 分 别 为 9.4%,9.4% 以 及 6.5% 大 豆, 豆 粕 结 束 连 续 4 周 总 持 仓 量 增 长, 出 现 小 幅

工 程 勘 察 资 质 标 准 根 据 建 设 工 程 勘 察 设 计 管 理 条 例 和 建 设 工 程 勘 察 设 计 资 质 管 理 规 定, 制 定 本 标 准 一 总 则 ( 一 ) 本 标 准 包 括 工 程 勘 察 相 应 专 业 类 型 主 要 专 业 技 术 人 员 配 备 技 术

附 件 : 上 海 市 建 筑 施 工 企 业 施 工 现 场 项 目 管 理 机 构 关 键 岗 位 人 员 配 备 指 南 二 一 四 年 九 月 十 一 日 2

抗 战 时 期 国 民 政 府 的 银 行 监 理 体 制 探 析 % # % % % ) % % # # + #, ) +, % % % % % % % %

数 学 标 准 不 练 习 1.1 理 解 问 题 并 坚 持 解 决 这 些 问 题 1.2 以 抽 象 和 定 量 方 式 推 理 1.3 建 构 可 行 参 数 和 评 判 他 人 的 推 理 1.4 使 用 数 学 方 法 建 模 1.5 策 略 性 地 使 用 合 适 的 工 具 1.6


精 勤 求 学 自 强 不 息 Born to win! 解 析 : 由 极 限 的 保 号 性 知 存 在 U ( a) 当 a 时 f ( ) f ( a) 故 f ( ) 在 点 a 不 取 极 值 f ( ) f ( a) f ( ) f ( a) lim lim a a a a ( a)

第 六 章 债 券 股 票 价 值 评 估 1 考 点 一 : 债 券 价 值 的 影 响 因 素 2

<433A5C446F63756D656E E E67735C41646D696E F725CD7C0C3E65CC2DBCEC4CFB5CDB3CAB9D3C3D6B8C4CFA3A8BCF2BBAFA3A95CCAB9D3C3D6B8C4CF31302D31392E646F63>

随着执业中医师资格考试制度的不断完善,本着为我校中医学专业认证服务的目的,本文通过对我校中医类毕业生参加2012年和2013年的中医执业医师考试成绩及通过率、掌握率进行分析,并与全国的平均水平进行差异比较分析,以此了解我校执业中医师考试的现状,进而反映我校中医类课程总体教学水平,发现考核知识模块教学中存在的不足,反馈给相关学院和教学管理部门,以此提高教学和管理水平。

用节点法和网孔法进行电路分析

<4D F736F F D DB9FAD5AEC6DABBF5B1A8B8E6CAAEC8FDA3BAB9FAD5AEC6DABBF5B5C4B6A8BCDBBBFAD6C6D3EBBBF9B2EEBDBBD2D7D1D0BEBF>

抗 日 战 争 研 究 年 第 期

untitled

名 称 生 命 科 学 学 院 环 境 科 学 1 生 物 学 仅 接 收 院 内 调 剂, 初 试 分 数 满 足 我 院 生 物 学 复 试 最 低 分 数 线 生 命 科 学 学 院 生 态 学 5 生 态 学 或 生 物 学 生 命 科 学 学 院

3 复 试 如 何 准 备 4 复 试 成 绩 计 算 5 复 试 比 例 6 复 试 类 型 7 怎 么 样 面 对 各 种 复 试 04 05

课程类 别

!!!!!!!!!!

珠江钢琴股东大会

第2章 数据类型、常量与变量

¹ º ¹ º 农 业 流 动 人 口 是 指 户 口 性 质 为 农 业 户 口 在 流 入 地 城 市 工 作 生 活 居 住 一 个 月 及 以 上 的 流 动 人 口 非 农 流 动 人 口 是 指 户 口 性 质 为 非 农 户 口 在 流 入 地 城 市 工 作 生 活 居 住 一 个

正 规 培 训 达 规 定 标 准 学 时 数, 并 取 得 结 业 证 书 二 级 可 编 程 师 ( 具 备 以 下 条 件 之 一 者 ) (1) 连 续 从 事 本 职 业 工 作 13 年 以 上 (2) 取 得 本 职 业 三 级 职 业 资 格 证 书 后, 连 续 从 事 本 职 业

全国建筑市场注册执业人员不良行为记录认定标准(试行).doc

第三章 作业

<4D F736F F D20BFC9B1E0B3CCD0F2BFD8D6C6CFB5CDB3C9E8BCC6CAA6B9FABCD2D6B0D2B5B1EAD7BC2E646F63>

证券代码: 证券简称:长城电脑 公告编号:

<433A5C C6B73625C B746F705CB9FABCCAD6D0D2BDD2A9D7A8D2B5B8DFBCB6BCBCCAF5D6B0B3C6C6C0C9F3C9EAC7EBD6B8C4CFA3A CDA8D3C3B0E6A3A92E646F63>

微 积 分 ( 二 ) 教 学 大 纲 2 (2010 版 ) 课 程 编 码 : 课 程 名 称 : 微 积 分 学 时 / 学 分 :36/2 先 修 课 程 : 初 等 数 学 立 体 几 何 平 面 解 析 几 何 微 积 分 ( 一 ) 适 用 专 业 : 人 力 资 源 管

中 中 中 中 部 中 岗 位 条 件 历 其 它 历 史 师 地 理 师 生 物 师 体 与 健 康 师 从 事 中 历 史 工 从 事 中 地 理 工 从 事 中 生 物 工 从 事 中 体 与 健 康 工 2. 课 程 与 论 ( 历 史 ); 2. 科 ( 历 史 )

学 年 第 二 学 期 集 中 考 试 安 排 (18 周 ) 考 试 日 期 :6 月 27 日 星 期 一 8:10-9:50 第 二 公 共 教 学 楼 A 区 A 高 等 数 学 ( 理 二 2) 复 材 材 料 科 学 与 工 程

生产支援功能 使用说明书(IP-110 篇)

际 联 考 的 非 美 术 类 本 科, 提 前 批 本 科 体 育 类 第 一 批 第 二 批 第 三 批 的 理 工 类 和 文 史 类 本 科 平 行 志 愿, 考 生 可 以 填 报 6 所 院 校 志 愿 符 合 贫 困 地 区 专 项 计 划 和 农 村 考 生 专 项 计 划 报 考


抗 日 战 争 研 究 % 年 第 期! # # % %


第 四 条 建 设 单 位 对 可 能 产 生 职 业 病 危 害 的 建 设 项 目, 应 当 依 照 本 办 法 向 安 全 生 产 监 督 管 理 部 门 申 请 职 业 卫 生 三 同 时 的 备 案 审 核 审 查 和 竣 工 验 收 建 设 项 目 职 业 卫 生 三 同 时 工 作 可

登录、注册功能的测试用例设计.doc

合 并 计 算 配 售 对 象 持 有 多 个 证 券 账 户 的, 多 个 证 券 账 户 市 值 合 并 计 算 确 认 多 个 证 券 账 户 为 同 一 配 售 对 象 持 有 的 原 则 为 证 券 账 户 注 册 资 料 中 的 账 户 持 有 人 名 称 有 效 身 份 证 明 文 件

目 录 关 于 图 标... 3 登 陆 主 界 面... 3 工 单 管 理... 5 工 单 列 表... 5 搜 索 工 单... 5 工 单 详 情... 6 创 建 工 单... 9 设 备 管 理 巡 检 计 划 查 询 详 情 销 售 管

教师上报成绩流程图

18 上 报 该 学 期 新 生 数 据 至 阳 光 平 台 第 一 学 期 第 四 周 至 第 六 周 19 督 促 学 习 中 心 提 交 新 增 专 业 申 请 第 一 学 期 第 四 周 至 第 八 周 20 编 制 全 国 网 络 统 考 十 二 月 批 次 考 前 模 拟 题 第 一 学

Transcription:

ID Tech 5 中 "Megatexture" 针 对 地 形 的 D3D9 基 本 实 现 原 理 姚 勇 H3D 2007-8 本 文 对 ID SOFTWARE 使 用 的 "megatexture" 技 术, 针 对 地 表 贴 图 应 用 的 D3D9 的 硬 件 实 现, 做 了 概 要 式 的 介 绍 并 对 技 术 的 实 现, 优 化, 扩 展, 和 实 用 性 进 行 了 刨 析 转 载 请 注 名 作 者 和 H3D 一, 综 述 ID TECH5 是 PC 3D 游 戏 之 父 和 DOOM 之 父 John Carmack 最 新 推 出 的 一 项 新 的 游 戏 制 作 技 术 核 心 内 容 为 一 种 命 名 为 "Megatexture" 的 动 态 贴 图 管 理 技 术 实 际 上 是 一 种 动 态 卸 载 和 装 载 渲 染 资 源 的 技 术 统 称 Idsoftware DOOM3 引 擎 的 lighting/shadow/shader 方 案 统 一 以 后, 同 UNREAL3 一 样, 面 对 次 世 代 游 戏 对 资 源 的 无 穷 尽 需 求, 需 要 尽 快 建 立 起 一 种 实 际 工 程 技 术 方 案, 加 快 构 建 3D 虚 拟 现 实 的 生 产 图 片 来 源 :Quake Wars 这 个 技 术 最 主 要 方 向 就 是 要 把 VR3D 建 造 从 有 限 的 显 卡 内 存 中 释 放 出 来 把 美 术 从 繁 重 的 贴 图 重 用 绘 制 中 解 脱 出 来 因 为 VR3D 主 要 资 源 消 耗 都 在 贴 图 上, 所 以 这 个 技 术 主 要 针 对

texture 同 时 geometry 也 可 以 作 为 动 态 资 源 一 旦 rendering 相 关 资 源 作 为 动 态 流 进 行 管 理, 所 带 来 的 另 一 个 好 处 就 是 可 以 让 VR 世 界 变 为 动 态 的 随 时 改 变 texture/geometry 总 得 来 讲,ID 这 项 针 对 工 程 应 用 技 术 主 要 致 力 于 解 决 :1-3DVR 资 源 需 求 的 爆 炸 增 长 和 有 限 显 卡 显 存 的 矛 盾 ;2- 美 术 资 源 需 求 的 爆 炸 增 长, 以 及 生 产 力 低 成 本 高 昂 的 矛 盾 在 ID TECH5 演 示 中, 实 时 演 算 播 放 了 一 个 细 节 非 常 丰 富 的 室 外 地 形, 同 时 结 合 了 一 个 小 型 的 室 内 场 景 所 有 模 型 和 贴 图 制 作, 按 照 Carmack 介 绍, 只 让 几 个 美 术 花 了 4 天 时 间 就 制 作 出 20G 的 游 戏 美 术 资 源 而 游 戏 引 擎 负 责 把 几 十 G 的 资 源 动 态 装 载 到 显 卡 进 行 渲 染 本 文 就 以 下 几 个 问 题 做 初 步 讲 述 :1, 综 述 地 形 渲 染 以 及 贴 图 技 术 ;2,Clipmap 介 绍 ; 3, 基 于 D3D9 的 解 决 方 案 描 述 ;4, 优 化 和 扩 展 ;5, 方 案 可 行 性 1-1,Mega Texture 如 下 : Megatexture 的 具 体 实 现, 在 DOOM3 中 的 地 形 绘 制 已 经 加 入 具 体 实 现 细 节 简 单 描 述 DOOM3 的 地 形 贴 图 最 大 支 持 32768x32768 即 5.46 G 在 DOOM3 中, 以 128x128 大 小 的 块 进 行 储 存 便 于 快 速 读 取 以 最 大 2048x2048 的 clipmap 尺 寸 进 行 处 理 其 实 可 以 计 算 出 在 D3D9 标 准 的 显 卡 上,normalmap+6 clipmap stack 的 最 大 理 论 支 持 贴 图 数 据 大 小 为 (2048 * 2^6 )^2 *4= 68T bytes. 这 个 大 小 针 对 现 在 的 PC 硬 盘 是 绰 绰 有 余 的 DOOM3 使 用 这 张 全 局 metatexture 纹 理 渲 染 地 形, 不 使 用 LOD,GEOM-MORPHING 1-2, 传 统 地 形 贴 图 渲 染 当 使 用 Tiling 方 式 绘 制 贴 图, 等 于 把 贴 图 图 素 (texel) 密 度 成 倍 扩 大 以 重 复 纹 理 信 息 量 的 代 价 保 证 在 一 定 分 辨 率 下 屏 幕 上 贴 图 的 精 细 程 度 在 绘 制 大 范 围 地 形 时, 使 用 不 Tiling 的 全 局 贴 图 无 法 表 现 贴 地 处 的 地 表 细 节 所 以 使 用 一 些 可 以 重 复 (Tiling) 的 不 规 则 图 案 的 贴 图 来 进 行 模 拟 1-2-1 Tiling 地 形 贴 图 由 于 地 形 贴 图 尺 寸 很 大, 所 以 无 法 使 用 全 局 贴 图 而 是 把 多 层 Tiling 的 纹 理 使 用 alpha 通 道 互 相 融 合 起 来 诸 如 WOW[1], 天 堂 2 等 大 型 室 外 地 形 渲 染 多 采 用 此 技 术 此 技 术 在 每 一 层 Tiling 贴 图 依 然 用 到 了 一 张 全 局 alpha 贴 图 以 及 一 张 全 地 形 唯 一 的 静 态 光 影 贴 图 在 multitexture 中 根 据 显 卡 的 multitexture 处 理 单 元 数 量, 进 行 multi-pass 和 multitexture 的 混 合 渲 染 比 如, 混 合 绿 草, 土 路, 野 花 的 一 块 室 外 地 形, 需 要 至 少 3 层 地 表 贴 图 分 别 是 一 块 256x256 的 草 贴 图,128x128 的 土 路 贴 图, 和 128x128 的 野 花 贴 图 每 层 纹 理 使 用 Tiling 模 式 进 行 绘 制, 在 绘 制 的 同 时, 每 层 纹 理 带 有 一 张 ALPHA 灰 度 图 ( 第 一 层 不 用 ) 用 来 表 明 本 层 纹 理 在 融 合 中 所 占 的 比 重 把 3 张 地 表 贴 图,2 张 ALPHA 贴 图, 以 及 一 张 LIGHTMAP 贴 图 混 合 起 来, 就 有 如 下 地 表 效 果 可 以 看 出 土 路 和 草 地 之 间 的 均 匀 过 渡

图 片 来 源 :H3D 如 果 进 行 优 化,4 层 ALPHA 可 以 混 合 称 为 一 张 贴 图 Lightmap 一 张 那 么 也 至 少 需 要 2 张 全 局 贴 图 进 行 地 表 绘 制 1-2-2 全 局 地 表 纹 理 混 合 Tiling 细 节 贴 图 [2] 在 更 大 广 度 的 地 形 渲 染, 有 时 候 需 要 一 种 更 加 快 速 的 方 法 在 FAR CRY 引 擎 中, 使 用 了 这 个 技 术 简 单 描 述 为, 使 用 一 张 全 局 地 表 纹 理, 渲 染 地 表 所 有 植 被 和 光 影 信 息 在 离 视 点 近 的 范 围 内, 使 用 一 张 表 现 当 地 地 表 细 节 的 贴 图, 以 Tiling 方 式 进 行 融 合 叠 加 这 样 在 细 节 度 上, 以 Tiling 方 式 的 贴 图 以 高 细 节 图 素 纹 理, 掩 盖 了 下 面 那 一 层 全 局 贴 图 的 粗 糙 颗 粒 总 的 来 讲, 分 层 Tiling Alpha 混 合 地 表 贴 图, 和 全 局 地 表 混 合 Tiling 细 节 贴 图, 两 种 方 法 都 是 靠 贴 图 的 Tiling 来 增 大 视 点 附 近 贴 图 图 素 的 密 度 防 止 比 屏 幕 分 辨 率 小 的 2 图 素 之 间 进 行 线 性 差 值 影 响 真 实 感 二,Clip maps 基 本 介 绍 针 对 受 显 卡 显 存 制 约, 无 法 使 用 大 尺 寸 贴 图 进 行 绘 制,1998 年 SGI 公 司 发 表 了 一 篇 名 为 <The Clipmap: A Virtual Mipmap>[3] 的 论 文 论 文 里 详 细 阐 述 了 一 种 以 有 限 硬 件 性 能, 来 实 现 相 对 无 限 大 贴 图 的 渲 染 论 文 是 一 整 套 硬 件 与 软 件 结 合 的 方 案 它 可 以 实 现 以 一 平 方 米 一 个 图 素, 用 单 一 贴 图 进 行 整 个 地 球 表 面 的 渲 染 并 且 结 合 硬 件 数 据 传 输 带 宽, 以 及 相 应 优 化 方 法, 鲁 棒 的 保 证 以 任 意 速 度 漫 游 时 保 持 在 60Hz( 针 速 率 ) 下 面 先 对 此 技 术 做 一 定 简 要 介 绍 在 第 三 节 给 出 基 于 D3D9 硬 件 的 解 决 方 案 思 路 下 图 为 Clipmap 实 现 的 美 国 国 家 地 图 实 时 漫 游 的 一 小 部 分 美 国 约 塞 米 蒂 国 家 公 园 (Yosemite National Park) 南 部 的 一 半 整 个 美 国 使 用 一 张 170G 的 贴 图 在 显 卡 中 的 clipmap 贴 图 缓 存 为 16M 这 个 贴 图 内 存 用 量 在 今 天 的 PC 硬 件 上 是 完 全 可 以 实 现 的

图 片 来 源 :<The Clipmap: A Virtual Mipmap> 2-1,Mipmap 工 作 原 理 及 其 分 析 我 们 先 从 mipmap[4] 工 作 原 理 分 析 开 始 如 图 : 图 片 来 源 :<The Clipmap: A Virtual Mipmap> Mipmap 的 工 作 原 理 是, 把 一 张 贴 图 按 照 2 的 倍 数 进 行 缩 小 直 到 1X1 把 缩 小 的 图 都 储 存 起 来 在 渲 染 时, 根 据 一 个 象 素 (pixel, 注 意 pixel 和 texel 区 别 Pixel 是 屏 幕 上 一 个 点 Texel 是 贴 图 上 一 个 图 素 ) 离 眼 睛 位 置 的 距 离, 来 判 断 从 一 个 合 适 的 图 层 中 取 出 texel 颜 色 赋 给 象 素 D3D 和 OGL 都 有 想 对 应 的 API 控 制 接 口 如 下 图

图 片 来 源 :<The Clipmap: A Virtual Mipmap> 通 过 观 察 mipmap 工 作 原 理 我 们 可 以 发 现, 硬 件 总 是 根 据 眼 睛 到 目 标 的 距 离, 来 选 取 最 适 合 当 前 屏 幕 象 素 分 辨 率 的 图 层 假 设 有 一 张 32768x32768 mipmap 贴 图 当 前 屏 幕 分 辨 率 为 1024 1024 眼 睛 距 离 物 体 比 较 近 时,mipmap 最 大 也 只 可 能 从 1024 1024 的 mipmap 图 层 选 取 texel 再 次, 当 使 用 三 线 性 过 滤 (trilinear) 时, 最 大 也 只 访 问 到 2048x2048 的 图 层 选 取 texel, 来 和 1024x1024 图 层 中 的 图 素 进 行 线 性 插 值 这 样 一 个 基 本 事 实 告 诉 我 们, 在 使 用 任 何 尺 寸 贴 图 渲 染 任 意 距 离 的 物 体 时, 贴 图 采 样 只 会 用 到 不 大 于 屏 幕 分 辨 率 2 倍 的 mipmap 层 根 据 这 个 事 实, 我 们 可 以 创 建 clipmap 对 大 尺 寸 贴 图 进 行 渲 染 时 的 优 化 2-2,Clipmap 原 理 2-2-1 Clipmap 构 建 在 原 始 clipmap 论 文 中,clipmap 在 显 卡 内 存 中 的 构 建 如 图 : 图 片 来 源 :<The Clipmap: A Virtual Mipmap> Clipmap Pyramid(clipmap 棱 椎 ) 是 我 们 PC 显 卡 中 常 见 的 mipmap 形 式 Clipmap Stack 是 不 同 于 mipmap 实 现 的 地 方 横 线 绘 制 的 棱 锥 代 表 完 整 贴 图 的 mipmap 形 式 但 是 在 显 存 中, 大 于 clipmap Pyramid 最 高 层 尺 寸 的 贴 图, 都 以 clipmap pyramid 尺 寸 存 放, 但 是 相 应 的, clipmap stack 中 的 贴 图 代 表 的 原 始 贴 图 面 积, 一 层 比 一 层 小 比 如 clipmap pyramid 最 大 2048x2048 在 之 上 一 层,mipmap 表 达 是 4096x4094 图 素 在 clipmap stack 中, 还 是 储 存 2048x2048 大 小 的 贴 图 显 然 此 代 表 的 就 是 mipmap 尺 寸 4096 的 一 半 边 长, 即 原 始 面 积 的 1/4 大 小 依 次 推 上 去, 每 层 都 是 下 层 代 表 面 积 的 1/4 Clipmap pyramid 最 大 边 长 即 为 Clipsize size Clipmap 贴 图 的 中 心 点, 在 整 张 贴 图 的 位 置 坐 标, 我 们 称 为 ClipCenter ClipCenter 由 当 前 摄 像 机 在 整 个 世 界 中 的 相 对 位 置 来 决 定 实 际 中, 目 前 D3D9 级 别 的 PC 显 卡 硬 件 并 不 支 持 这 种 储 存 形 式 的 mipmap 具 体 实 现 方 法 将 在 第 三 章 讲 解

2-2-2 渲 染 Clipmap 在 渲 染 中, 针 对 一 个 Pixel, 根 据 当 前 Pixel, 找 到 相 应 的 clipmap 层, 如 果 处 于 clipmap pyramid, 直 接 按 照 mipmap 传 统 方 式 采 样 取 图 素 如 果 处 于 clipmap stack, 则 把 贴 图 坐 标 根 据 当 前 clipmap stack 代 表 整 体 面 积 的 比 例, 进 行 缩 放, 得 到 对 应 位 置 图 素 这 样 就 可 以 正 确 渲 染 屏 幕 上 的 任 意 物 体 如 下 图 : 图 片 来 源 :<The Clipmap: A Virtual Mipmap> 把 CLIPMAP 所 有 图 层 绘 制 出 来, 从 正 上 方 看, 就 是 象 北 京 二 环 内, 二 环, 三 环, 四 环 为 分 割 绘 制 中 心 区 域 的 贴 图 分 辨 率 最 大, 但 是 代 表 的 面 积 最 小 绘 制 最 外 围 四 环 之 外 的 贴 图 分 辨 率 最 小 是 因 为 到 了 clipmap pyramid 层, 一 层 就 代 表 一 张 全 局 贴 图 但 是 分 辨 率 已 经 被 缩 小 了 很 多 倍 而 分 辨 率 最 大 的 clipmap stack 顶 层, 由 于 尺 寸 必 须 保 持 clipmap pyramid 的 最 大 尺 寸, 所 以 所 代 表 的 面 积 就 小 了 很 多 这 种 折 中 正 是 由 于 基 于 绘 制 屏 幕 上 的 任 何 物 体 都 不 可 能 使 用 大 于 屏 幕 分 辨 率 的 贴 图 尺 寸, 所 以 在 显 存 中 只 提 供 刚 刚 满 足 绘 制 在 一 针 内, 从 一 个 视 点 看 过 去 的 所 有 场 景 ( 地 形 ) 分 辨 率 的 贴 图 内 容 2-2-3 climap LOD 计 算 以 及 每 层 贴 图 坐 标 计 算 给 定 一 个 根 据 ClipCenter 换 算 过 的 贴 图 坐 标, 下 面 需 要 计 算 出 在 屏 幕 上 的 一 个 物 体 的 象 素, 从 clipmap 中 选 取 一 层, 索 引 贴 图 图 素 由 mipmap LOD(LOD 数 在 本 文 用 俗 称 层 数 描 述 ) 计 算 公 式 得 知,clipmap LOD 计 算 和 mipmap 一 样 并 且 可 以 保 证 任 意 pixel 计 算 出 来 的 climap 层 必 然 落 在 clipmap stack 中 一 般 PC 3D 显 卡 硬 件 计 算 都 采 用 Heckbe 算 法 简 单 描 述 如 下 : LOD = log2[f(x, y)]; f(x,y) 为 屏 幕 x,y 轴 方 向 贴 图 坐 标 变 化 率 的 最 大 值 贴 图 坐 标 变 化 率 计 算 由 屏 幕 象 素 X,Y 坐 标 分 别 递 进 一 个 象 素 单 位 的 变 化 投 影 到 贴 图 坐 标 系 得 出 具 体 描 述 参 考 [5] 2-3,, 存 储 效 率 Clipmap 由 于 采 用 clipmap stack 和 clipmap pyramid 结 合 的 方 式, 使 用 clipsize 为 2^m 的 clipmap, 把 一 张 2^n 边 长 贴 图 容 量 从 (4n+1-1)/3 字 节 下 降 为 4m(n - m + 4/3) - 1/3 字

节 更 具 体 的 数 据 如 下 : 类 型 / 边 长 512 1024 4096 32768 67108864 Full Mipmap 682KB 2.7MB 42.7MB 2.7GB 10923TB 512 Clipmap 682KB 1.1MB 2.2MB 3.7MB 9.1MB 1024 Clipmap 682KB 2.7MB 6.7MB 12.7MB 34.7MB 2048 Clipmap 682KB 2.7MB 18.7MB 42.7MB 131.7MB 可 见 clipmap 极 大 降 低 了 显 卡 内 存 对 渲 染 超 大 容 量 贴 图 的 要 求 目 前 D3D9 的 主 流 显 卡 从 128M 到 256M 不 等 在 1024 的 Clipsize 下, 几 乎 所 有 显 卡 都 可 以 满 足 要 求 2-4,, 绘 制 整 个 地 球 表 面 的 方 案 -- 虚 拟 clipmap( ( 简 述 ) 当 绘 制 国 家 或 者 星 球 表 面 这 样 规 模 的 实 时 渲 染 时, 整 张 贴 图 尺 寸 为 2^26 的 平 方 这 样 一 来, 需 要 在 显 卡 硬 件 内 部 计 算 的 工 作, 诸 如 贴 图 坐 标 换 算 等 都 难 以 在 精 度 为 IEEE 32 FLOAT 下 正 确 进 行 在 原 有 clipmap 基 础 上, 在 U,V 方 向 加 入 一 个 坐 标 偏 移 向 量 在 clipmap stack 的 纵 向 方 向, 加 入 一 个 偏 移 数 值 形 成 如 下 图 解 构 : 图 片 来 源 :<The Clipmap: A Virtual Mipmap> 系 统 只 要 能 够 保 证 从 图 中 的 3 种 情 况 中 正 确 寻 址, 就 能 够 保 证 超 大 贴 图 的 clipmap 渲 染 三, 基 于 D3D9 的 简 化 实 现 从 之 前 对 Clipmap 的 描 述 中 可 以 看 出 现 代 D3D9 显 卡 具 备 了 渲 染 clipmap 的 大 部 分 功 能 唯 一 欠 缺 的 是 clipmap stack 的 模 拟 因 为 clipmap pyramid 就 是 一 张 标 准 的 mipmap 贴 图 所 以 D3D9 只 要 能 够 把 clipmap stack 模 拟 出 来, 使 用 shader model3 可 以 很 容 易 的 实 现 clipmap 3-1,Multitexture 我 们 利 用 显 卡 硬 件 的 multitexture 模 拟 clipstack 这 是 D3D9 简 化 实 现 的 最 基 本 思 想 PC 显 卡 支 持 clip pyramid 在 pixel shader 中, 如 果 想 利 用 clipmap stack, 就 必 须 有 某 种 途 径 让 pixel shader 使 用 除 了 clip pyramid 之 外 的 贴 图 自 然 我 们 想 到 了 使 用 multitexture D3D9 标 准 显 卡 应 该 支 持 最 少 8 层 纹 理 单 元 ( 不 支 持 的 硬 件 很 快 会 绝 迹, 所 以 可 以 不 考 虑 ) 假 设

我 们 不 使 用 法 线 贴 图 进 行 凹 凸 象 素 光 照 使 用 第 8 层 装 载 clip pyramid, 使 用 2048x2048 32bit DDS 贴 图 从 第 一 层 到 第 七 层 我 们 都 可 以 使 用 clip stack 贴 图 这 样, 分 别 装 载 4096, 8192, 16384,32768,65536,131072,262144 边 长 mipmap 的 clipmap 每 一 层 占 用 2048x2048*4*/4*1.33 /1024 /1024 = 5.32Mb 这 样 一 共 8 层 贴 图 总 共 43MB 贴 图 显 存, 可 以 容 纳 一 张 274TB 的 贴 图 当 我 们 使 用 每 层 1024 1024 贴 图 时, 使 用 12MB 显 存 就 可 以 模 拟 68TB 的 贴 图 显 然 对 于 游 戏 来 讲 绰 绰 有 余 注 意 这 里 只 是 简 化 计 算, 没 有 把 trilinear 考 虑 进 去 3-2,Toroidal addressing 在 第 四 章 我 们 将 考 虑 优 化 和 动 态 管 理 clipmap 我 们 知 道 用 MULTITEXTURE 模 拟 的 clipmap 只 是 当 前 视 角 观 察 的 贴 图 用 量 当 摄 像 机 移 动 时,clipmap 的 贴 图 组 必 须 同 时 更 新 除 了 最 底 层 clipmap pyramid 贴 图 不 用 更 新, 其 他 几 张 clipmap stack 贴 图 必 须 根 据 摄 像 机 移 动, 改 变 ClipCenter 位 置 然 后 从 磁 盘 上 把 clipcenter 周 围 的 贴 图 调 入 这 涉 及 到 显 存 写 入 问 题 可 以 想 见 当 所 有 clipmap stack 贴 图 同 时 频 繁 装 载 总 共 十 几 MB 容 量 的 内 存, 对 于 磁 盘 IO 和 显 存 带 宽 都 是 极 大 考 验 所 以 针 对 clipmap 更 新 特 点, 在 贴 图 寻 址 方 面 采 用 wrap 循 环 寻 址 然 后 对 贴 图 的 更 新 采 用 如 下 方 式 : 图 片 来 源 :NVSDK 3-3,pixel shader 实 现 思 想 概 要 由 于 有 了 第 二 章 climpa 渲 染 的 大 概 描 述, 以 及 前 两 节 关 于 clipmap stack 和 贴 图 寻 址 方 式, 我 们 利 用 shader model 3 的 pixel shader 功 能 可 以 直 接 实 现 具 体 算 法 描 述 如 下 :

1, 计 算 mipmap LOD 2, 计 算 光 照 3, 假 如 应 该 采 样 clipmap pyramid, 直 接 采 样, 混 合 光 照, 完 成 4, 假 如 应 该 采 样 clipmap stack 贴 图, 重 新 计 算 贴 图 坐 标 5, 根 据 mipamaplod 选 择 相 应 的 stack 贴 图 采 样, 混 合 光 照, 完 成 首 先, 计 算 mipmap LOD 这 里 可 以 采 用 三 线 性 插 值 例 如 : PSOut PS_Trilinear(PSIn input) { PSOut output; float2 dx = ddx( input.texcoord * g_texturesize.x ); float2 dy = ddy( input.texcoord * g_texturesize.y ); float d = max( sqrt( dot( dx.x, dx.x ) + dot( dx.y, dx.y ) ), sqrt( dot( dy.x, dy.x ) + dot( dy.y, dy.y ) ) ); // 计 算 出 float miplevel = log2( d ); float blendglobal = saturate(g_stackdepth - miplevel); float4 color0 = PyramidTexture.Sample( samplerlinear, input.texcoord ); If (blendglobal)// 如 果 使 用 了 全 局 clipmap pyrimad, 及 早 退 出 { output.color = color0; } Else {// 使 用 了 clipmap stack 贴 图, 计 算 贴 图 坐 标, 然 后 动 态 分 支 判 断 应 该 采 样 第 几 层 贴 图 // This fractional part defines the factor used for blending // between two neighbour stack layers float blendlayers = modf(miplevel, miplevel); blendlayers = saturate(blendlayers); int nextmiplevel = miplevel + 1; nextmiplevel = clamp( nextmiplevel, 0, g_stackdepth - 1 ); miplevel = clamp( miplevel, 0, g_stackdepth - 1 ); layer ). // Here we need to perform proper scaling for input texture coordinates. // For each layer we multiply input coordinates by g_scalefactor / pow( 2, // We add 0.5 to result, because our stack center with coordinates (0.5, 0.5) // starts from corner with coordinates (0, 0) of the original image. float2 cliptexcoord = input.texcoord / pow( 2, miplevel ); cliptexcoord *= g_scalefactor;

// 只 是 简 单 的 双 线 性 采 样 if (miplevel==0) { //use clipstacktexture0.sample(...) } If (miplevel ==1) { //use clipstacktexture1.sample(...) } } Return output; } 3-4,D3D10 的 实 现 7 D3D10 引 入 了 一 种 叫 Texture Array 的 功 能 可 以 在 pixel shader 中 直 接 利 用 一 个 整 数 下 标 来 寻 找 所 需 要 的 贴 图, 然 后 进 行 采 样 思 路 同 上, 只 不 过 不 用 动 态 分 支, 直 接 进 行 数 组 索 引 后 采 样 图 片 来 源 :NVSDK 图 中 绿 色 部 分 就 是 texture array

四, 一 些 优 化 和 扩 展 Clipmap 在 显 存 中 的 存 在, 只 是 应 对 某 一 个 固 定 摄 像 机 位 置 和 角 度 的 场 景 贴 图 需 求 当 摄 像 机 移 动 时, 必 须 对 clipmap 贴 图 进 行 更 新 具 体 更 新 方 法 第 三 章 已 经 提 过 但 是, 在 摄 像 机 每 一 针 运 动 都 使 用 磁 盘 IO 和 阻 塞 渲 染 管 道 的 内 存 搬 运, 是 不 具 实 用 性 的 所 以 在 实 用 中, 必 须 对 clipmap 动 态 更 新 进 行 高 度 优 化 这 也 是 此 技 术 的 核 心 所 在 同 时, 对 clipmap 的 一 些 扩 展 是 为 了 增 强 游 戏 的 表 现 力 以 下 4-6 到 4-9 的 扩 展 方 面 没 有 进 行 任 何 实 际 论 文 和 实 例 支 持, 只 是 一 种 对 现 有 技 术 扩 充 的 预 想 和 估 计 希 望 专 家 给 与 更 深 入 的 建 议 4-1,, 动 态 clipmap 管 理 Clipmap 的 动 态 管 理, 必 须 满 足 几 个 条 件 1, 摄 像 机 移 动 时 的 平 滑 实 时 渲 染 ;2, 不 能 对 摄 像 机 的 移 动 速 度 和 位 置 有 所 限 制 ;3, 动 态 装 载 更 新 应 该 是 外 部 不 可 见, 自 动 进 行 的 4-2,2 级 cache 由 一 般 异 步 动 态 装 载 卸 载 应 用 技 术 得 知, 在 大 数 据 量 进 行 从 磁 盘 到 内 存 的 交 换 时, 必 须 有 足 够 的 缓 冲 由 于 磁 盘 到 内 存, 内 存 到 显 存 的 带 宽 大 不 一 样, 磁 盘 到 内 存 比 内 存 到 显 存 慢 得 比 较 多 所 以, 对 于 从 硬 盘 到 显 卡 内 存 的 缓 冲, 需 要 存 在 至 少 2 步 CACHE 第 一 步, 从 磁 盘 到 主 内 存 的 缓 冲 对 clipmap stack 贴 图 周 边 的 图 素, 必 须 预 先 读 入 一 些 到 主 存 CACHE 中 来 并 且 这 个 动 作 应 该 在 整 个 游 戏 期 间 保 持 不 停 顿 预 先 读 入 的 数 据 根 据 玩 家 移 动 方 向 做 一 定 预 测 在 模 拟 星 球 表 面 的 海 量 贴 图 库 中 进 行 更 新, 同 时 还 要 考 虑 不 同 磁 盘 阵 列 相 应 速 度 等 等 所 以 磁 盘 到 主 存 的 缓 冲 策 略 非 常 重 要 第 二 步, 从 主 存 装 入 内 存, 每 次 更 新 每 个 clipmap stack 贴 图 周 边 的 半 圈 贴 图 内 容 图 片 来 源 :<The Clipmap: A Virtual Mipmap> 棕 色 区 域 是 每 次 更 新 的 内 容 4-3, 多 线 程 IO 控 制 在 主 循 环 中 对 贴 图 进 行 磁 盘 IO, 解 压, 然 后 写 入 clipmap stack 贴 图 缓 存, 会 同 时 阻 碍 CPU 和 GPU 的 工 作 流 水 线 使 得 处 理 器 停 滞, 影 响 效 率 所 以, 对 磁 盘 到 主 存 的 读 取 IO, 解 压 工 作, 可 以 放 在 另 外 一 个 线 程 中 进 行 写 入 贴 图 显 存 的 工 作 由 于 本 身 会 阻 断 D3D9 级 别

显 卡 的 流 水 线 但 是, 可 以 利 用 一 些 策 略 延 缓 一 次 性 装 入 所 有 CLIPMAP STACK 贴 图 的 并 发 这 将 在 4-6 讲 解 4-1 中 提 到 的 摄 像 机 平 滑 移 动 渲 染, 主 要 是 指 对 clipmap stack 贴 图 更 新 的 步 骤 一 定 要 短, 不 能 极 大 幅 度 影 响 主 渲 染 循 环 的 执 行 在 固 定 带 宽 内, 对 clipmap stack 贴 图 边 带 更 新 的 数 据 量 并 不 很 大 基 本 可 以 保 持 一 个 平 滑 渲 染 的 过 程 在 WINDOWS 系 统, 使 用 无 缓 冲 的 异 步 IO 模 式 是 最 适 合 此 应 用 的 且 文 件 以 硬 盘 簇 大 小 的 整 数 倍 放 置, 读 取 效 率 最 快 4-4, 使 用 MaxTextureLOD 在 4-1 中 提 到, 摄 像 机 以 任 意 速 度 移 动, 都 不 能 影 响 渲 染 的 平 滑 我 们 采 用 如 下 策 略 1, 当 摄 像 机 以 设 计 速 度 移 动 时,clipmap 正 常 更 新 2, 当 摄 像 机 超 过 设 计 速 度,clipmap 更 新 速 度 无 法 赶 上 摄 像 机 移 动 速 度 则 自 动 调 整 max texture LOD Max texture LOD 的 意 义 是 clipmap 工 作 在 最 高 clipmap stack 的 贴 图 层 数 这 个 参 数 同 时 影 响 clipmap upload 和 渲 染 pixel shader 中 stack 选 取 降 低 最 高 细 节 stack 意 味 着 降 低 climap update 的 负 荷 3 当 出 现 极 端 情 况 时, 所 有 clip stack 更 新 都 赶 不 上 camera 移 动, 则 只 使 用 clipmap pyramid 贴 图 进 行 渲 染 虽 然 图 象 贴 图 分 辨 率 急 剧 下 降, 但 是 保 证 了 camera 以 任 意 速 度 漫 游 4-5,, 对 地 形 几 何 渲 染 扩 展 --geometry clipmap 参 考 GPU GEMS2 的 geometry clipmap 介 绍 文 章 6 简 单 描 述 为 : 使 用 clipmap 进 行 顶 点 生 成 把 高 度 图 做 为 clipmap 进 行 更 新, 然 后 做 为 vertex texture 的 源 用 以 生 成 地 形 网 格 这 么 做 的 好 处 是, 地 形 网 格 削 减 被 放 入 了 climap 的 LOD 过 程 中 而 不 用 CPU 做 任 何 额 外 计 算 工 作 并 且 支 持 相 对 无 限 大 地 形 动 态 地 形 改 变 4-6,double clipmap buffer,, 无 效 边 带 4-3 指 出, 使 用 多 线 程 把 磁 盘 IO 和 解 压 缩, 可 以 促 进 CPU 和 GUP 协 同 工 作 在 对 磁 盘 文 件 进 行 预 读 取 时 有 着 极 大 好 处 在 对 JPEG 进 行 分 块 读 取 和 REALTIME 解 压 缩 时, 可 以 在 多 核 系 统 上 获 得 额 外 的 负 载 减 轻 Clipmap 原 先 的 设 计, 存 在 一 个 叫 无 效 边 带 的 技 术 它 可 以 使 得 SGI 硬 件 底 层 一 边 渲 染 一 边 进 行 边 带 的 贴 图 更 新 等 于 是 主 存 到 显 存 的 第 0 级 CACHE PC 和 有 的 CONSOLE 显 卡 不 具 备 这 样 的 功 能 对 于 写 入 显 存 操 作, 都 是 把 一 张 贴 图 显 存 LOCK 住, 进 行 写 入 在 这 个 期 间 此 贴 图 无 法 进 行 渲 染 但 是 受 此 启 发, 我 们 可 以 把 CACHE 的 粒 度 放 为 每 层 CLIPMAP STACK 贴 图 结 合 多 线 程 与 DOULBE BUFFER 思 想, 方 法 如 下 : 1, 在 需 要 创 建 clipmap stack 贴 图 时, 对 每 层 贴 图 创 建 一 个 BACK BUFFER 2, 在 渲 染 CLIPMAP 同 时, 多 线 程 进 行 另 外 一 组 stack texture 的 更 新 虽 然 可 以 预 知 假 如 写 入 一 张 贴 图 要 阻 断 整 个 GPU 工 作 管 道 的 话, 但 是 由 于 多 线 程 把 一 组 stack texture 按 顺 序 更 新 所 以 避 免 了 在 主 循 环 并 发 一 次 性 更 新 整 个 stack texture array 如 果 显 卡 可 以 同 时 渲 染 和 写 入 back buffer 的 话, 则 效 率 应 该 会 提 高 3, 每 针 渲 染 完 毕, 调 换 STACK BACK BUFFER 到 前 台

这 个 方 法 DOULBE 了 CLIPMAP 占 用 内 存 但 是 在 多 核 环 境 下, 尤 其 显 卡 支 持 渲 染 时 并 发 写 入 贴 图 显 存 功 能 的 话,CLIPMAP 更 新 效 率 会 大 大 提 高 内 存 的 使 用, 前 面 进 行 过 计 算, 适 合 游 戏 的 贴 图, 采 用 1024 大 小 的 DDS CLIPMAP, 显 存 占 用 不 大 4-7,, 支 持 非 2 的 N 次 方 全 局 贴 图 在 游 戏 中, 一 个 全 局 的 世 界 如 果 只 能 是 2 的 N 次 方 大 小, 会 极 大 限 制 美 术 工 作 如 果 是 正 方 形 世 界, 贴 图 只 能 是 4G,16G,64G( 都 乘 1.33) 这 个 数 量 级 别 考 虑 引 入 MxN 大 小 的 贴 图 M 和 N 都 不 是 2 的 幂 我 们 在 之 上 取 任 意 一 点 P,k<Px<M-k, k<py<n-k, k=2^q(q=1,2,...),k 为 接 近 分 辨 率 的 一 个 2 的 幂 整 数 围 绕 P 建 立 一 个 边 长 为 k 的 正 方 形 以 k 正 方 形 为 基 础, 创 建 clipmap 这 个 clipmap 代 表 在 P 点 绘 制 需 要 的 贴 图 内 容 随 着 摄 像 机 移 动, 原 先 不 用 更 新 的 clipmap pyramid 也 需 要 根 据 ClipCenter 移 动 进 行 更 新 保 持 贴 图 棱 锥 还 是 以 2 的 幂 进 行 更 新 换 句 话 说, 除 了 clipmap stack 贴 图 更 新,clipmap pyramid 贴 图 以 及 其 mipmap 层, 都 需 要 更 新 这 样 一 来, 我 们 就 可 以 用 clipmap 进 行 任 意 长 宽 世 界 贴 图 的 渲 染 4-8, 支 持 法 线 贴 图 进 行 象 素 级 别 光 照 在 ID TECH5 演 示 中, 地 表 都 具 有 凹 凸 贴 图 象 素 光 照 在 这 里 无 法 给 出 确 切 的 实 现 方 法 只 是 尝 试 列 出 可 能 的 实 现 方 案 希 望 更 进 一 步 的 探 讨 法 线 贴 图 同 样 使 用 一 张 全 局 贴 图 1, multipass 方 法 使 用 第 二 张 clipmap 装 载 法 线 贴 图 2, 在 更 新 diffuse color clipmap 时, 利 用 3 张 clipmap stack 贴 图 的 ALPHA 通 道, 装 载 法 线 贴 图 的 z,y,z 或 者 只 装 载 x,y( 在 pixel shader 计 算 z) 然 后 在 pixel shader 重 组, 进 行 光 照 计 算 2 层 stack clipmap 代 表 一 层 normalmap 我 们 只 在 近 距 离 使 用 normalmap, 远 处 就 用 一 个 RGB(0.5,0.5,1) 的 蓝 色 象 素 代 替 在 超 出 clipmap stack 视 野 区 域 使 用 mipmap 的 trilinear 插 值 3, 使 用 clipmap 其 中 的 一 层 或 者 两 层 装 载 法 线 贴 图, 因 为 远 距 离 地 形 景 物 不 需 要 象 素 级 别 的 光 照 所 以 直 接 对 近 景 进 行 象 素 光 照 即 可 凹 凸 象 素 光 照 消 失 的 地 方 使 用 一 些 三 线 性 插 值, 平 滑 过 渡 4-9 非 地 形 应 用 Clipmap 主 要 用 于 大 规 模 地 形 渲 染 的 贴 图 调 度 在 此 基 础 上, 对 非 地 形 场 景 的 渲 染, 应 用 clipmap 也 称 为 可 能 Clipmap 实 际 是 对 贴 图 数 据 库 进 行 了 一 种 线 性 组 织 和 查 找 可 以 根 据 简 单 的 x,y 坐 标 以 及 u.v 贴 图 坐 标 定 位 所 需 要 贴 图 在 clipmap texture database 的 位 置 地 形 应 用 的 天 然 方 便 之 处 在 于, 地 形 网 格 的 空 间 位 置 本 身 就 说 明 了 其 贴 图 纹 理 在 clipmap texture database 中 的 位 置 根 据 此 思 想, 如 果 能 够 在 场 景 中 固 定 几 何 物 体 信 息 中 标 致 好 所 在 clipmap 数 据 库 中 的 位 置 并 且 有 效 组 织 场 景 中 的 几 何 体 贴 图 存 放 位 置 也 和 其 世 界 空 间 位 置 相 关 这 样 就 能 在 几 何 体 与 clipmap 之 间 建 立 起 一 种 联 系 随 着 摄 像 机 的 移 动,clipmap 贴 图 不 断 更 新, 相 应 场 景

中 的 物 体 就 被 赋 上 材 质 当 视 角 远 离 物 体, 此 物 体 贴 图 不 再 被 使 用, 从 显 存 中 清 除 这 样 就 实 现 了 非 地 形 的 海 量 几 何 物 体 贴 图 的 clipmap 管 理 此 思 想 只 是 停 留 在 思 考 阶 段 需 要 在 今 后 的 工 作 中 实 践 五, 是 否 值 得 5-1,, 地 形 渲 染 精 度 和 容 量 我 们 来 计 算 一 下 实 际 游 戏 大 概 需 要 的 贴 图 容 量 假 设 地 形, 高 度 图 的 一 个 象 素 代 表 一 个 格 子 一 个 格 子 代 表 现 实 一 米 屏 幕 分 辨 率 r=1024x1024 人 眼 离 地 面 最 低 距 离 d=1 米 FOV=90 离 地 面 最 近 距 离 为 人 眼 直 视 下 方 根 据 透 视 关 系, 可 以 推 算 出 在 屏 幕 上 2 米 的 格 子 将 会 撑 满 整 个 屏 幕 一 张 非 TILING 的 贴 图, 平 铺 在 地 下, 我 们 可 以 计 算 出, 如 果 需 要 屏 幕 的 一 个 象 素 恰 好 被 一 个 贴 图 图 素 覆 盖 (mipmaplod=0) 则 需 要 2x2 的 格 子 贴 一 张 1024 非 TILING 的 贴 图 对 于 一 个 格 子 贴 512 象 素 才 不 会 被 filter 进 行 插 值 模 糊 这 个 贴 图 细 节 度 是 非 常 惊 人 的 按 这 个 计 算, 要 一 张 全 局 RGB24BIT 贴 图 贴 满 1 平 方 公 里 的 区 域, 就 需 要 1024*1024*512*512*3*1.33 字 节 = 1Tb 的 RGB 贴 图 粗 略 估 计 JPEG 大 概 为 40-50G 之 间 但 是 1T 的 海 量 贴 图 相 当 于 一 张 1024x1024 图 的 26 万 倍, 这 基 本 不 太 可 能 由 美 术 手 工 完 成 而 且, 一 公 里 的 距 离 根 本 不 足 以 表 现 大 型 世 界 假 设 人 站 在 512,512 的 坐 标,500 米 的 直 线 距 离, 景 物 远 远 没 有 达 到 人 眼 视 界 之 外 人 眼 在 晴 天 看 远 处 山 脉 可 以 有 十 几 公 里 的 视 界 就 算 在 远 处 不 用 精 细 的 贴 图, 但 是 人 既 然 能 够 移 动 过 去, 那 么 必 然 要 制 作 这 么 大 范 围 的 全 局 贴 图 利 用 512 象 素 代 表 一 米 显 然 是 不 现 实 的 如 果 我 们 认 为 不 需 要 那 么 高 的 精 度 观 察 WOW, 粗 略 估 计 可 以 接 受 的 精 度 为,128-256 象 素 代 表 一 米 (WOW 基 本 为 256) 我 们 计 算 人 眼 离 地 1 米 时 一 个 图 素 覆 盖 4 个 象 素 插 值 的 情 况 :128*128*1024*1024*3*1.33 = 65G. JPEG 估 计 3G 4 平 方 公 里 就 是 48G 对 于 付 出 如 此 巨 大 代 价, 在 一 平 方 公 里 之 内, 让 美 术 进 行 了 相 当 于 一 万 六 千 多 张 1024x1024 地 图 的 手 绘, 实 时 渲 染 进 行 非 常 复 杂 的 CACHE 和 多 线 程 异 步 操 作, 得 到 的 效 果 只 是 4 个 象 素 模 糊 一 个 图 素 的 图 形 细 节 而 且 如 果 游 戏 想 承 载 4 平 方 公 里 的 地 域, 基 本 就 已 经 超 出 目 前 CONSOLE 和 PC 能 够 接 受 一 个 游 戏 容 量 的 范 围 即 便 是 蓝 光, 也 快 到 达 了 极 限 而 4 平 方 公 里 对 次 世 代 游 戏 来 说, 简 直 是 九 牛 一 毛 有 很 多 游 戏 (CRYSIS) 对 于 表 现 几 十 平 方 公 里 都 已 经 非 常 得 心 应 手 数 量 也 在 几 个 G 之 内 所 以 单 纯 使 用 clipmap 实 现 连 续 大 型 地 形 渲 染, 以 目 前 硬 件 容 量, 还 是 比 较 吃 力 需 要 其 他 优 化 手 段 配 合 接 下 来 计 算 贴 图 更 新 速 度 需 求 假 设 人 类 行 走 1.5 米 / 秒. 如 果 按 照 斜 前 方 行 走 1 米 128 图 素 Clipmap 为 1024 Clipmap stack 为 6 层 在 一 秒 人 类 行 走 经 过 的 地 域, 以 1024 为 边 界, 正 方 形 边 带 图 素 个 数 大 约 为 1.5/sqrt(2) *128* 1024 * 2 = 2172Kb 1 秒 钟 需 要 更 新 的 图 素 内 存 为 6x2172x3 = 39096Kb 大 约 40MB 假 设 30Hz 刷 新, 一 针 里 更 新 的 数 据 为 39096/30 = 1.3Mb 一 针 一 MB 的 数 据 流 量, 也 是 非 常 客 观 5-2,, 对 传 统 地 形 渲 染 方 法 进 行 STREAMING 5-1 节 对 使 用 全 局 贴 图 进 行 大 范 围 渲 染 的 数 量 和 最 小 贴 图 传 输 量 做 了 估 计 接 下 来 我 们

看 一 下, 应 用 clipmap 思 想, 传 统 地 形 渲 染 方 法 是 否 有 可 扩 展 的 空 间 在 1-2-1 和 1-2-2 使 用 tiling 的 两 种 地 形 渲 染 方 法 中, 都 提 到 要 应 用 至 少 1-2 张 全 局 地 表 纹 理 贴 图 在 使 用 全 局 贴 图 绘 制 过 程 中, 完 全 可 以 借 鉴 clipmap 的 技 术 把 全 局 alpha 和 lightmap, 或 者 全 局 diffuse 颜 色 图 放 入 clipmap 管 理 由 于 其 他 图 层 都 是 靠 tiling 实 现 理 论 上 可 以 实 现 贴 图 密 度 无 限 制, 贴 图 大 小 无 限 制 的 全 面 解 决 方 案 而 制 作 全 局 diffuse 颜 色 图 和 制 作 clipmap 全 局 图 一 样 Alpha map 靠 手 工 绘 制 Lightmap 可 以 自 动 生 成 并 不 会 比 只 使 用 一 张 全 局 地 形 贴 图 麻 烦 多 少 六, 结 论 Clipmap 极 大 的 释 放 了 显 存 限 制, 把 应 用 对 贴 图 细 节 的 无 限 增 长 需 求 转 化 为 对 clipmap 实 时 更 新 的 技 术 解 决 方 案 此 应 用 不 仅 可 以 用 于 大 规 模 地 形 渲 染, 也 可 以 应 用 与 大 型 场 景 中 固 定 几 何 物 体 的 贴 图 管 理 Clipmap 可 以 做 为 一 种 空 间 和 贴 图 数 据 库 的 对 应 管 理 系 统 并 且 在 象 素 级 别 进 行 LOD 结 合 geometry clipmap 的 应 用, 可 以 相 对 提 高 虚 拟 现 实 制 作 的 生 产 力 同 时 Clipmap 的 更 新 成 为 了 一 个 新 的 瓶 颈 在 PC 硬 件 架 构 上, 需 要 极 大 精 力 进 行 更 新 的 优 化 另 外, 在 对 次 世 代 游 戏 质 量 和 渲 染 精 度 的 标 准 下, 对 clipmap 采 用 全 局 世 界 纹 理 的 可 行 性 做 了 分 析, 并 提 出 了 质 疑 同 时 结 合 传 统 地 形 渲 染 方 法, 给 出 了 与 clipmap 相 结 合 的 可 能 性 来 信 请 给 puzzy4d@yahoo.com.cn, 欢 迎 讨 论 索 引 1 WORLD OF WOLFCRAFT,http://www.wowchina.com, Blizzard,2004 2 Far Cry, http://www.crytek.com/, Crytek,2007 3 <The Clipmap: A Virtual Mipmap>,Christopher C. Tanner, Christopher J. Migdal, and Michael T. Jones,Silicon Graphics Computer Systems,1998 4 EWINS Jp,WALLER MD,WHITE M,et a1.mip Map Level Selection for Texture Mapping[J].IEEE TRANSACTIONS ON VISUAIAZATION AND COMPUTE R GRAPHICS, 1998,4(4) 5 Mipmap 映 射 技 术 中 d 值 计 算 方 法 的 探 讨, 韩 慧 健, 徐 振 中, 张 诚 洁, 计 算 机 应 用, 第 24 卷 第 12 期,2004 6 Terrain Rendering Using GPU-Based Geometry Clipmaps,<GPU GEMS 2>, Hoope,NVIDIA,2005 7 NVIDIA, SDK10,clipmaps