标题：实时相机处理技术
基本信息
原书名： Real-Time Cameras  原出版社： Morgan Kaufmann 
作者： Mark Haigh-Hutchinson    [作译者介绍] 
译者： 刘祎 
出版社：清华大学出版社 
ISBN：9787302273929
上架时间：2012-1-9
出版日期：2011 年12月
开本：16开
页码：293
版次：1-1
所属分类： 计算机
内容简介
《实时相机处理技术》详细阐述了与实时相机相关的高效解决方案及相应的数据结构和算法，主要包括游戏概述、相机基础知识、电影技术、相机设计、相机设计方案、相机脚本、位置和方向、漫游和遮挡技术、移动和碰撞、相机数学知识以及相机实现方案等内容。此外，本书还提供了相应的算法、代码以及伪代码，以帮助读者进一步理解相关方案的实现过程。
《实时相机处理技术》适合作为高等院校计算机及相关专业的教材和教学参考书，也可作为相关开发人员的自学教材和参考手册。 
作译者
本书提供作译者介绍
Mark Haigh-Hutchinson就职于Retro Studios Inc，该公司坐落于德克萨斯州首府奥斯汀。Mark H-H于1984年便从事视频游戏的设计和开发工作，而他对游戏的痴迷则可追溯到1979年。Mark H-H曾参与了40多款视频游戏的开发工作，其饰演的角色也不一而同，包括程序员、设计人员以及项目负责人，其中，较为著名的作品包括星球大战系列游戏，即《星球大战：侠盗中队》、《星战前传1：极速飞车》、《星球大战：帝国的阴影》以及《星球大战：绝地大反攻》。除此之外，其他作品还包括《僵尸邻居》、《萨姆和马克斯：开始流浪》以及
目录
《实时相机处理技术》 
第1部分：核心概念 
第1章 游戏概述 3 
实时应用程序 3 
游戏系统 3 
游戏的循环更新结构 4 
输入 6 
对象的思考步骤 6 
对象的移动 7 
消息机制 7 
相机 8 
相机后处理 8 
渲染器 8 
常见的性能问题 9 
相机系统 9 
控制操作 10 
脚本设计 11 
本章小结 12 
第2章 相机基础知识 13 
真实的相机系统 13 
.用途和属性 14 
电影投影 15 
游戏相机 15 
基本技术 16 
相机系统 17 
游戏相机 17 
表现风格 17 
相机行为 17 
第一人称相机和第三人称相机 17 
电影相机和交互式相机 18 
观察位置 18 
期望位置 18 
方向 18 
偏航角 19 
仰角 19 
旋转角 19 
期望方向 19 
旋转操作 19 
视见体 19 
视口 19 
视域 20 
宽高比 20 
刷新率和帧速率 21 
安全区和安全帧 21 
刷新率和运动模糊 22 
显示撕裂 23 
玩家角色人物 23 
目标对象 23 
插值计算 23 
投影 24 
视差 24 
相机转换 24 
相机约束条件 24 
移动约束条件 25 
方向约束条件 25 
相机的表现风格 26 
正交表现方式（2d） 26 
透视表现方式（3d） 27 
混合表现方式（2.5d） 28 
相机行为 29 
视频相机 29 
第一人称/视点 30 
第三人称/分离视角 31 
后定位 33 
肩部定位 33 
脚部可见 33 
远距离定位 34 
角色相关 34 
静态相机 34 
路径定位 34 
混合fp/tp相机 35 
预视相机和反馈相机 36 
预测人物的移动方式 37 
预测相机的路径 37 
路径搜索方案 38 
数据驱动与规划方案 38 
方向预测 38 
视见生成 38 
视锥体 40 
视见转换 40 
投影转换 41 
玩家控制操作 41 
本章小结 42 
第3章 电影技术 43 
术语 43 
标准电影术语 44 
移动拍摄 44 
摇动镜头 44 
镜头倾斜 45 
跟踪拍摄 45 
景深 45 
淡入/淡出效果 46 
镜头眩光效果 46 
旁跳镜头 46 
插入镜头 46 
跳接镜头 47 
180°规则/动作作用线 47 
镜头视点 47 
升降镜头 47 
特写镜头 48 
反转镜头 48 
30°规则 48 
强迫透视 48 
实时电影技术 48 
电影 48 
交互式电影技术 49 
电影摄像机 50 
摄像机的移动 50 
摄像机的方向 51 
动态生成画面/回放摄像机 51 
再现型摄像机/关键帧摄像机 52 
脚本型摄像机 52 
动态生成画面 53 
结束画面 53 
开始画面 54 
回放相机的效果 54 
重定向 54 
摄像机抖动效果 54 
相机的摇动效果 55 
视域/景深 55 
脚本机制 55 
剪辑操作 56 
镜头选取 57 
取景/合成操作 57 
场景转换 57 
跳转镜头 58 
淡入/淡出转换 58 
圈入/圈出转换 58 
划接 58 
视口转换 59 
工具 59 
本章小结 60 
第2部分：设计原理 
第4章 相机设计 63 
交互式2d相机系统 63 
期望特征 64 
确定视见内容 65 
2d电影相机系统 66 
交互式3d相机系统 67 
透视投影 68 
平行投影 68 
3d电影视频相机系统 70 
2.5d相机系统 71 
游戏设备 71 
宽高比 72 
调整尺寸 72 
镜头的摇动和扫描 72 
拉伸效果 72 
相机设计 72 
游戏以及技术需求 73 
设计概览 73 
考察高层设计目标 73 
评估玩家角色行为 74 
确定场景环境范围 74 
定义基本的相机行为 74 
特定区域范围内的场景需求 74 
相机系统的技术评估 75 
游戏设计原则 78 
本章小结 80 
第5章 相机设计方案 81 
基于游戏类型的相机设计方案 81 
第一人称射击/冒险类游戏 81 
相机的定位方案 81 
角色类/动作类冒险游戏 84 
3d平台 86 
角色饰演类游戏/在线多人游戏 88 
滚屏机制 88 
竞技类游戏 89 
单玩家竞技类游戏 90 
双人或4人竞技类游戏 90 
团队竞技类游戏 90 
室内场地类游戏 91 
室外竞技类游戏 91 
抽象功能 92 
赛车类游戏 92 
地面（或表面）机动设备 93 
即时战略游戏 93 
飞行模拟 94 
具有真实效果的飞行模型 94 
非真实相机模型 95 
人工水平仪 95 
运动感 95 
冒险类游戏 95 
拼图类/party类/棋盘类游戏 96 
格斗类游戏/近战游戏 97 
多玩家相机处理方案 98 
单屏技术 99 
分屏技术 100 
全屏与分屏之间的转换 101 
分屏与全屏之间的转换 101 
本章小结 102 
第6章 相机脚本 103 
相机脚本概述 103 
脚本类型 103 
脚本语言 104 
基于文本的脚本语言 104 
通用编程语言 104 
自定义脚本语言 105 
有限状态机 106 
可视化脚本语言 107 
脚本语言中的问题 108 
事件消息机制 108 
混合脚本方案 110 
脚本对象 110 
对象关系 111 
相机脚本机制 115 
相机脚本方法 115 
相机控制 116 
第三人称脚本机制 116 
第一人称脚本机制 116 
非交互式电影脚本 118 
经验方法 118 
本章小结 121 
第3部分：相机工程 
第7章 位置和方向 125 
坐标方案 125 
世界空间 125 
相机（视见）空间 125 
屏幕空间 126 
局部（角色）空间 126 
对象相关 126 
期望位置 126 
第一人称相机定位方式 127 
第三人称相机定位方式 127 
期望位置的确定方法 128 
静态相机 129 
伺服/跟踪操作 130 
基于世界坐标系统的偏移量 130 
基于世界坐标系统的角偏移量 131 
基于世界对象 131 
局部偏移量 132 
局部角偏移量 132 
相对于角色的偏移量 132 
相对于角色的角偏移量 133 
相对于对象的偏移量 133 
路径 134 
路径类型 135 
线性类型 135 
圆形/椭圆形/螺旋形路径 135 
样条 136 
方向 144 
方向表现方法 145 
欧拉角 146 
转换矩阵 146 
轴角 146 
四元数 147 
期望方向的确定方案 147 
固定方向 147 
跟踪目标对象或位置 148 
视见偏移相对于角色的偏移量 148 
锁定视点位置 149 
目标对象位置预测 149 
对象取景 150 
视见位置的确定方案 150 
美学条件与游戏体验需求 150 
回放相机 151 
视域 151 
角色的空闲状态 151 
自动方向操控 152 
第一人称相机与第三人称相机之间的转换 153 
第三人称相机与第一人称相机之间的转换 153 
重定向方案 153 
旋转操作的应用 154 
均匀角速度 154 
加速和减速 154 
角速度阻尼效果 154 
全视角阻尼效果 154 
降低突然转向的发生几率 155 
第三人称自由视角 158 
玩家移动 158 
自由视角定向方案 158 
常见方向问题 159 
万向节死锁 159 
垂直转向 159 
倾斜操作 160 
方向噪声 160 
快速方向变化 160 
玩家角色的视锥体剪裁 161 
本章小结 161 
第8章 漫游和遮挡技术 163 
将相机视为ai游戏对象 163 
漫游技术 164 
动态漫游技术 164 
预定义漫游技术 168 
流场 171 
影响力地图 171 
势场 171 
环境遮挡 172 
如何看待环境遮挡问题 172 
场景遮挡确定方案 173 
光线投射技术 173 
空间体投射 174 
渲染技术 174 
遮挡预测方案 175 
预测视点位置 175 
视线 175 
处理视线问题 176 
预测方案 176 
图形变化 176 
获取期望位置 177 
瞬移/跳转操作 177 
保持控制方向 177 
生成路径 177 
跟随角色移动 178 
凸起地形 178 
回避纵向柱状体 179 
预计算方案 179 
防止丢失los 179 
瞬间移动 180 
淡化遮挡几何体或对象 180 
无须渲染遮挡几何体或对象 180 
渲染图形元素且忽略遮挡现象 180 
可见性预计算方案 180 
安全检测 181 
安全检测方案 182 
本章小结 182 
第9章 移动和碰撞 183 
相机移动序列 183 
人物移动 184 
第一人称相机 184 
第三人称相机 184 
移动方案 186 
瞬间移动 186 
锁定相机 186 
比例控制器 187 
物理模拟 188 
弹性机制（弹簧） 189 
pid控制器 189 
圆周运动 190 
插值计算 191 
平滑效果和阻尼技术 192 
阻尼技术 192 
移动过滤器 193 
移动约束条件 194 
纵向移动约束条件 194 
渲染几何体的接近程度 195 
距离约束条件 195 
平面约束条件 196 
表面约束条件 196 
空间约束条件 196 
玩家操控方式 197 
相机位置的控制方案 197 
观察相机 198 
相机移动确认方案 198 
位置控制约束条件 199 
相机位置控制方案 200 
相机方向控制 201 
第一人称相机 201 
第三人称相机 201 
相机的自动定位和定向方案 202 
基于玩家控制器的反馈 202 
基于游戏体验需求的反馈 203 
调试相机的操控方式 203 
相机碰撞 204 
相机碰撞的重要性 204 
碰撞检测的必要性 205 
碰撞确定方案 206 
对象碰撞 206 
环境碰撞 206 
碰撞图元 207 
碰撞几何体设计 207 
避免紧凑型封闭空间 208 
向相机提供足够的空间 208 
陡峭的阶梯 208 
突兀地形 208 
低矮的天花板 208 
入口 208 
采用简单的碰撞网格 209 
针对相机的独立碰撞网格 209 
圆角对象 209 
碰撞决定方案 209 
保持静止 209 
部分移动 210 
移动变换 210 
镜头跳转 210 
禁用碰撞检测 210 
避免相机碰撞 211 
玩家的未来位置 212 
预测潜在碰撞 212 
碰撞预测 213 
对象排斥 213 
朝向相机移动 214 
第10章 相机数学知识 215 
基础相机数学 215 
相机位置 215 
相机方向 215 
相机移动 216 
渲染操作 216 
通用相机数学 216 
相机问题以及修正方案 216 
常见数值技术 216 
相机的视见位置 217 
避免倾斜旋转 217 
降低突然转向的发生几率 218 
世界空间与屏幕空间之间的转换 218 
四元数 221 
指数曲线 222 
比例曲线 222 
球体线性插值计算 222 
超越函数 223 
分段样条曲线 223 
弹性机制（弹簧） 223 
数字滤波器 224 
低通滤波器 224 
高通滤波器 225 
带通滤波器 225 
有限脉冲反应滤波器 225 
无限脉冲反应滤波器 226 
样条曲线 227 
相机样条应用 227 
三次多项式 228 
样条类型 228 
线性类型 229 
分段式hermite曲线 229 
catmull-rom样条曲线 230 
圆角catmull-rom样条曲线 231 
kochanek-bartels样条曲线 232 
bezier曲线 232 
均匀三次b样条 234 
非均匀有理b样条 234 
连续性 235 
样条定义 235 
样条计算 235 
控制点生成方式 236 
参数化弧长 236 
全部样条长度 236 
最近位置 236 
样条编辑 237 
插值计算 237 
插值的含义 238 
相机属性插值计算 238 
位置插值计算 239 
方向插值计算 239 
方向插值特征 241 
侧旋插值计算 242 
fov插值计算 242 
视口插值计算 243 
玩家控制插值计算 243 
第一人称相机 244 
第三人称相机 244 
插值选择方案 245 
线性插值 245 
源值 245 
目标值 246 
插值算法 246 
分段式插值 246 
插值方案 247 
线性时间插值 247 
参数函数 248 
球体线性插值计算 248 
潜在插值问题 248 
美学问题 248 
数值问题 250 
插值中断 251 
切换过程 251 
切换过程中的位置数据 251 
切换过程中的方向数据 252 
相机数学问题 252 
浮点精确度 252 
使用epsilon值 252 
编译器偏差 253 
硬件fpu偏差 253 
向量标准化操作 253 
矩阵累积浮点误差 253 
定期修复数值 253 
第11章 相机实现方案 255 
游戏引擎体系结构 255 
游戏更新循环结构 255 
游戏系统管理器 256 
时间间隔 257 
输入处理机制 257 
相机系统体系结构 257 
视口管理器 258 
视口 259 
视口切换 259 
渲染管理器 260 
相机管理器 260 
相机更新循环结构 261 
提示管理器 261 
震动管理器 262 
相机震动操作 262 
隆声/力反馈效果控制器 262 
游戏相机 263 
继承的相机行为 263 
基于组件的相机行为 264 
电影视频相机 264 
调试型相机 265 
脚本机制实现方案 265 
相机脚本对象 265 
相机提示对象 265 
触发体 266 
渲染/光照效果 266 
消息延迟 266 
序列事件计时器 266 
通用路径 267 
脚本逻辑排序 267 
消息机制 267 
优先权 267 
插值计算 268 
性能问题 268 
分摊机制 268 
预处理机制 269 
开发工具 269 
场景编辑器 269 
相机碰撞网格 270 
相机调试技术 270 
交互式调试技术 271 
独立型调试相机 271 
控制游戏刷新率 272 
通用相机状态 272 
相机属性的视觉表现 272 
属性滞后现象 273 
移动约束条件 273 
视线 273 
基于行为的渲染操作 274 
脚本调试 274 
数据日志 274 
游戏回放机制 275 
本章小结 275 
参考文献 277 
ai和漫游技术 277 
电影技术 277 
相机设计 278 
游戏设计 278 
图形学和渲染技术 279 
数学 279 
其他资源 280 
在线资源 280 
附录a 术语表 281 
附录b 辅助材料 291 
视觉感知 291 
移动敏感度 291 
刷新敏感度 291 
色彩敏感度 292 
深度感 292