书籍详情
游戏核心算法编程内幕
作者:(西)Daniel Sanchez-Crespo Dalmau编著;邱仲潘译;邱仲潘译
出版社:北京希望电子出版社
出版时间:2004-12-01
ISBN:9787801638892
定价:¥58.00
购买这本书可以去
内容简介
本书特点*经过时间测试的编码技术与算法,而不是趋势性的方法或对单个API的介绍。*C++完整代码样本,用于OpenGL与DirectXAPIs中。*代码设计与布局方法。数据结构、算法和游戏特定设计模式。*人工智能技术,包括面向动作AI、战术AI以及脚本引擎,都用Java和Lua编写脚本。*网络编程,从简单游戏到大量用户多方游戏。*二维编程,分析MariaBras与Zelda等经典游戏的算法,研究经典二维特效。*三维管道,包括分析几何处理、选取、剪取、遮挡探测和细节量技术。本书适用于:·游戏工程中的研发人员·游戏编程的业余爱好者·仅想更好地理解所玩游戏信息的人本书主要介绍市面上大多数计算机与视频游戏编程的基本核心算法与技术,以及游戏编程理论和许多PC与控制台上的AAA级产品的实现细节,使之成为游戏编程导论课程教材。书中大多数相关方法都有全面解释、框图和必要的代码样本,使读者可以了解幕后工作原理、工作方法和工作本质。全书由三部分组成。其中第一部分主要介绍游戏编程的基本概念;第二部分详细介绍游戏编程中的各种技术和算法;第三部分是附录,介绍游戏编程中相关技术和知识以及其他相关读物。
作者简介
暂缺《游戏核心算法编程内幕》作者简介
目录
第一部分 游戏编程
第1章 游戏编程时间表
1.1 第一阶段:“星球大战”之前
1.2 第二阶段:从“星球大战”到Atari
1.3 第三阶段:游戏控制台与个人计算机
1.3.1 游戏控制台与游戏开发人员
1.3.2 个人计算机
1.4 第四阶段:调整与汇总
1.5 第五阶段:游戏引擎的出现
1.6 第六阶段:手指式革命
1.7 第七阶段:移动现象
1.8 第八阶段:多方游戏
1.9 结束语
第2章 游戏体系结构
2.1 实时软件
2.2 游戏逻辑段
2.2.1 玩家更新
2.2.2 世界更新
2.3 显示段
2.3.1 世界绘制
2.3.2 NPC绘制
2.3.3 玩家
2.3.4 问题:网络游戏
2.4 编程过程关卡
2.5 结束语
第3章 数据结构与算法
3.1 类型、结构和类
3.2 数据结构
3.2.1 静态数组
3.2.2 链表
3.2.3 双向链表
3.2.4 队列
3.2.5 堆栈
3.2.6 双头队列
3.2.7 表
3.2.8 树
3.2.9 优先队列
3.2.10 图
3.3 标准模板库
3.3.1 容器
3.3.2 迭代器
3.4 结束语
第4章 设计模式
4.1 设计模式定义
4.2 一些重要编程模式
4.2.1 单体模式
4.2.2 策略模式
4.2.3 工厂模式
4.2.4 空间索引
4.2.5 复合模式
4.2.6 轻量级模式
4.3 可用性模式
4.3.1 屏蔽模式
4.3.2 状态模式
4.3.3 自动方式取消
4.3.4 磁化
4.3.5 焦点模式
4.3.6 进程模式
4.4 结束语
第5章 用户输入
5.1 键盘
5.2 鼠标
5.3 游戏杆
5.4 硬件抽象
5.5 力量反馈
5.6 结束语
第6章 基本人工智能技术
6.1 情境
6.2 人工智能系统结构
6.2.1 感知世界
6.2.2 记忆
6.2.3 分析/推理核心
6.2.4 动作/输出系统
6.3 特定技术
6.3.1 有限状态机
6.3.2 规则系统
6.3.3 规划与解题
6.3.4 生物灵感人工智能
6.4 结束语
第7章 面向动作的人工智能
7.1 动作游戏
7.2 动作设计人工智能
7.3 对象跟踪
7.3.1 眼睛接触:二维半平面测试
7.3.2 三维版本:半球
7.4 追赶
7.4.1 二维追赶:固定速度
7.4.2 预测性追赶
7.5 逃避
7.6 巡逻
7.7 隐藏与遮盖
7.8 射击
7.8.1 无限速度瞄准
7.8.2 实际瞄准
7.8.3 机关枪
7.9 综合起来
7.9.1 并行自动化
7.9.2 AI同步
7.10 结束语
7.10.1 平台游戏
7.10.2 射击游戏
7.10.3 格斗游戏
7.10.4 赛车游戏
第8章 战术性人工智能
8.1 战术性思维
8.1.1 路径寻找
8.1.2 团队活动
8.2 军事分析:影响图
8.2.1 数据结构
8.2.2 一些重要测试
8.3 表示战术
8.4 结束语
第9章 脚本
9.1 建立脚本语言
9.1.1 简单分析语言
9.1.2 分析结构化语言
9.2 嵌入语言
9.2.1 学习Lua
9.2.2 Java脚本
9.3 基于套接的脚本
9.4 结束语
第10章 网络编程
10.1 Internet的实际工作
10.2 从编程人员角度看套接
10.3 客户机
10.3.1 简单TCP客户机
10.3.2 简单UDP客户机
10.4 简单TCP服务器
10.5 多客户机服务器
10.5.1 并发的面向连接服务器
10.5.2 迭代的面向连接服务器
10.6 UDP服务器
10.7 防止套接受阻
10.8 设计客户机/服务器游戏
10.9 大量用户的多方游戏
10.9.1 数据外推
10.9.2 层次消息
10.9.3 空间分割
10.9.4 只发送状态改变
10.9.5 使用服务器群集
10.9.6 动态服务器与勇士综合症
10.10 结束语
第二部分 引擎编程
第11章 二维游戏编程
11.1 旧式硬件
11.2 二维游戏的数据结构
11.3 贴图矩阵地砖表
11.4 二维游戏算法
11.4.1 屏幕游戏
11.4.2 双向与四向卷轴
11.4.3 多方引擎
11.4.4 视差卷轴
11.4.5 各向异性引擎
11.4.6 翻页卷轴
11.5 特殊效果
11.5.1 调色板效果
11.5.2 点刻效果
11.5.3 灰贴
11.5.4 火
11.6 结束语
第12章 三维管道概述
12.1 简介
12.2 基本数据类型
12.2.1 顶点
12.2.2 索引图元
12.2.3 颜色
12.2.4 纹理贴图
12.3 几何格式
12.4 一般性图形管道
12.4.1 剪取
12.4.2 挑选
12.4.3 闭合测试
12.4.4 确定分辨率
12.4.5 变换与灯光
12.4.6 光栅化
12.5 结束语
第13章 室内绘制
13.1 一般分析
13.2 基于闭合的算法
13.3 二叉空间划分算法
13.3.1 构造
13.3.2 视图相关排序
13.3.3 层次式剪取
13.3.4 闭合探测
13.3.5 绘制
13.4 门户绘制
13.5 层次式闭合图
13.6 混合方法
13.6.1 门户/八叉树混合
13.6.2 四叉树/BSP混合
13.7 硬件辅助闭合测试
13.8 结束语
第14章 户外算法
14.1 概述
14.2 户外绘制的数据结构
14.2.1 高度域
14.2.2 四叉树
14.2.3 二叉三角形树
14.3 几何贴图
14.4 ROAM
14.4.1 第一遍:构造变差树
14.4.2 第二遍:网格重构
14.4.3 优化
14.5 块LOD
14.6 以GPU为中心的方法
14.7 户外视景图
14.8 结束语
第15章 角色动画
15.1 分析
15.2 显式与隐式方法
15.3 显式动画技术
15.3.1 帧动画
15.3.2 关键帧动画
15.3.3 标记插值
15.4 隐式动画概述
15.4.1 正向动力学
15.4.2 框架动画的数学
15.4.3 硬件辅助框架动画
15.5 道具处理
15.6 关于机车
15.7 四肢分解
15.8 面部动画
15.9 逆向动力学
15.9.1 分析逆向动力学
15.9.2 循环坐标派生
15.10 混合正向与逆向动力学
15.11 结束语
第16章 制片术
16.1 第一人称视角射击游戏
16.2 处理惯性
16.3 飞行模拟器与四元数
16.4 第三人称视角镜头
16.5 制片镜头:镜头样式
16.6 制片镜头:位置算法
16.6.1 选择镜头目标
16.6.2 选择相关信息
16.6.3 选择视图角度
16.7 基于agent的方法
16.8 结束语
第17章 色档
17.1 实际照明
17.1.1 简单绘制方程
17.1.2 按顶点与按像素照明
17.2 灯光贴图
17.2.1 扩散贴图
17.2.2 镜面贴图
17.2.3 使用灯光图的全局照明
17.2.4 实现光贴图:DirectX
17.2.5 用DirectX实现灯光贴图
17.2.6 生成灯光贴图
17.3 BRDF
17.3.1 平均向量
17.3.2 阴影
17.4 非照片真实绘制
17.4.1 铅笔绘制
17.4.2 外形线绘制
17.4.3 划线外形
17.4.4 单帧色档
17.4.5 油画绘制
17.5 结束语
第18章 纹理贴图
18.1 纹理类型
18.1.1 纹理贴图
18.1.2 XYZ贴图
18.1.3 圆柱贴图
18.1.4 球形贴图
18.1.5 三角形纹理贴图
18.2 平铺与贴花
18.3 过滤
18.4 Mip贴图
18.5 纹理优化
18.5.1 纹理压缩
18.5.2 纹理缓存与分页
18.6 多遍方法
18.7 多纹理
18.8 纹理运算与组合
18.9 细节纹理
18.10 环境贴图
18.11 鼓包贴图
18.11.1 浮雕鼓包贴图
18.11.2 Dot3鼓包贴图
18.12 上光贴图
18.13 结束语
第19章 微粒系统
19.1 微粒系统剖析
19.2 微粒数据结束
19.2.1 一般性微粒系统
19.2.2 派生微粒
19.2.3 微粒行为
19.2.4 微粒消除
19.2.5 绘制微粒
19.3 关于体系结构
19.4 加速技术
19.4.1 避免内存分配与释放
19.4.2 空间索引
19.4.3 LOD微粒系统
19.4.4 基于色档的微粒系统
19.5 结束语
第20章 有机构绘制
20.1 自然与细节
20.2 树
20.2.1 告示牌
20.2.2 基于图像方法
20.2.3 平行IBR方法
20.2.4 正交IBR方法
20.3 草
20.3.1 分层草
20.3.2 统计分布算法
20.4 云
20.4.1 天框与园顶
20.4.2 招贴板云
20.4.3 容积云
20.5 海洋
20.5.1 逼真海洋几何
20.5.2 海洋外观
20.5.3 焦散性
20.6 结束语
第21章 过程性技术
21.1 过程性列表
21.2 Renderman
21.3 实时色档语言
21.3.1 当前语言
21.3.2 Cg
21.3.3 HLSL
21.3.4 GL2色档语言
21.4 色档程序类型
21.4.1 色档程序集合
21.4.2 几何效果
21.4.3 灯光
21.5 纹理贴图
21.6 微粒系统
21.7 动画
21.8 特殊效果
21.9 结束语
第22章 几何算法
22.1 点包括测试
22.1.1 球上的点
22.1.2 AABB中的点
22.1.3 凸多边形的点
22.1.4 多边形的点(凹与凸):约当法
22.1.5 曲线定理
22.1.6 凸实体的点
22.1.7 实体的点(约当曲线定理)
22.2 光束相交测试
22.2.1 光束平面
22.2.2 光三角形
22.2.3 光AABB测试
22.2.4 光球测试
22.2.5 光凸形外壳
22.2.6 光一般实体(三维DDA)
22.3 运动测试
22.4 点与三角形集合碰撞(基于BSP)
22.5 网格与网格(清扫与修剪方法)
22.6 计算凸形外壳
22.6.1 二维方案
22.6.2 三维方案
22.7 三角形简化
22.7.1 顶点重合
22.7.2 边重合
22.7.3 递进网格
22.7.4 非保守式三角形简化
22.8 结束语
第三部分 附录
附录A 性能调整
附录B OpenGL
附录C Direct3D
附录D 数学知识
附录E 更多读物
第1章 游戏编程时间表
1.1 第一阶段:“星球大战”之前
1.2 第二阶段:从“星球大战”到Atari
1.3 第三阶段:游戏控制台与个人计算机
1.3.1 游戏控制台与游戏开发人员
1.3.2 个人计算机
1.4 第四阶段:调整与汇总
1.5 第五阶段:游戏引擎的出现
1.6 第六阶段:手指式革命
1.7 第七阶段:移动现象
1.8 第八阶段:多方游戏
1.9 结束语
第2章 游戏体系结构
2.1 实时软件
2.2 游戏逻辑段
2.2.1 玩家更新
2.2.2 世界更新
2.3 显示段
2.3.1 世界绘制
2.3.2 NPC绘制
2.3.3 玩家
2.3.4 问题:网络游戏
2.4 编程过程关卡
2.5 结束语
第3章 数据结构与算法
3.1 类型、结构和类
3.2 数据结构
3.2.1 静态数组
3.2.2 链表
3.2.3 双向链表
3.2.4 队列
3.2.5 堆栈
3.2.6 双头队列
3.2.7 表
3.2.8 树
3.2.9 优先队列
3.2.10 图
3.3 标准模板库
3.3.1 容器
3.3.2 迭代器
3.4 结束语
第4章 设计模式
4.1 设计模式定义
4.2 一些重要编程模式
4.2.1 单体模式
4.2.2 策略模式
4.2.3 工厂模式
4.2.4 空间索引
4.2.5 复合模式
4.2.6 轻量级模式
4.3 可用性模式
4.3.1 屏蔽模式
4.3.2 状态模式
4.3.3 自动方式取消
4.3.4 磁化
4.3.5 焦点模式
4.3.6 进程模式
4.4 结束语
第5章 用户输入
5.1 键盘
5.2 鼠标
5.3 游戏杆
5.4 硬件抽象
5.5 力量反馈
5.6 结束语
第6章 基本人工智能技术
6.1 情境
6.2 人工智能系统结构
6.2.1 感知世界
6.2.2 记忆
6.2.3 分析/推理核心
6.2.4 动作/输出系统
6.3 特定技术
6.3.1 有限状态机
6.3.2 规则系统
6.3.3 规划与解题
6.3.4 生物灵感人工智能
6.4 结束语
第7章 面向动作的人工智能
7.1 动作游戏
7.2 动作设计人工智能
7.3 对象跟踪
7.3.1 眼睛接触:二维半平面测试
7.3.2 三维版本:半球
7.4 追赶
7.4.1 二维追赶:固定速度
7.4.2 预测性追赶
7.5 逃避
7.6 巡逻
7.7 隐藏与遮盖
7.8 射击
7.8.1 无限速度瞄准
7.8.2 实际瞄准
7.8.3 机关枪
7.9 综合起来
7.9.1 并行自动化
7.9.2 AI同步
7.10 结束语
7.10.1 平台游戏
7.10.2 射击游戏
7.10.3 格斗游戏
7.10.4 赛车游戏
第8章 战术性人工智能
8.1 战术性思维
8.1.1 路径寻找
8.1.2 团队活动
8.2 军事分析:影响图
8.2.1 数据结构
8.2.2 一些重要测试
8.3 表示战术
8.4 结束语
第9章 脚本
9.1 建立脚本语言
9.1.1 简单分析语言
9.1.2 分析结构化语言
9.2 嵌入语言
9.2.1 学习Lua
9.2.2 Java脚本
9.3 基于套接的脚本
9.4 结束语
第10章 网络编程
10.1 Internet的实际工作
10.2 从编程人员角度看套接
10.3 客户机
10.3.1 简单TCP客户机
10.3.2 简单UDP客户机
10.4 简单TCP服务器
10.5 多客户机服务器
10.5.1 并发的面向连接服务器
10.5.2 迭代的面向连接服务器
10.6 UDP服务器
10.7 防止套接受阻
10.8 设计客户机/服务器游戏
10.9 大量用户的多方游戏
10.9.1 数据外推
10.9.2 层次消息
10.9.3 空间分割
10.9.4 只发送状态改变
10.9.5 使用服务器群集
10.9.6 动态服务器与勇士综合症
10.10 结束语
第二部分 引擎编程
第11章 二维游戏编程
11.1 旧式硬件
11.2 二维游戏的数据结构
11.3 贴图矩阵地砖表
11.4 二维游戏算法
11.4.1 屏幕游戏
11.4.2 双向与四向卷轴
11.4.3 多方引擎
11.4.4 视差卷轴
11.4.5 各向异性引擎
11.4.6 翻页卷轴
11.5 特殊效果
11.5.1 调色板效果
11.5.2 点刻效果
11.5.3 灰贴
11.5.4 火
11.6 结束语
第12章 三维管道概述
12.1 简介
12.2 基本数据类型
12.2.1 顶点
12.2.2 索引图元
12.2.3 颜色
12.2.4 纹理贴图
12.3 几何格式
12.4 一般性图形管道
12.4.1 剪取
12.4.2 挑选
12.4.3 闭合测试
12.4.4 确定分辨率
12.4.5 变换与灯光
12.4.6 光栅化
12.5 结束语
第13章 室内绘制
13.1 一般分析
13.2 基于闭合的算法
13.3 二叉空间划分算法
13.3.1 构造
13.3.2 视图相关排序
13.3.3 层次式剪取
13.3.4 闭合探测
13.3.5 绘制
13.4 门户绘制
13.5 层次式闭合图
13.6 混合方法
13.6.1 门户/八叉树混合
13.6.2 四叉树/BSP混合
13.7 硬件辅助闭合测试
13.8 结束语
第14章 户外算法
14.1 概述
14.2 户外绘制的数据结构
14.2.1 高度域
14.2.2 四叉树
14.2.3 二叉三角形树
14.3 几何贴图
14.4 ROAM
14.4.1 第一遍:构造变差树
14.4.2 第二遍:网格重构
14.4.3 优化
14.5 块LOD
14.6 以GPU为中心的方法
14.7 户外视景图
14.8 结束语
第15章 角色动画
15.1 分析
15.2 显式与隐式方法
15.3 显式动画技术
15.3.1 帧动画
15.3.2 关键帧动画
15.3.3 标记插值
15.4 隐式动画概述
15.4.1 正向动力学
15.4.2 框架动画的数学
15.4.3 硬件辅助框架动画
15.5 道具处理
15.6 关于机车
15.7 四肢分解
15.8 面部动画
15.9 逆向动力学
15.9.1 分析逆向动力学
15.9.2 循环坐标派生
15.10 混合正向与逆向动力学
15.11 结束语
第16章 制片术
16.1 第一人称视角射击游戏
16.2 处理惯性
16.3 飞行模拟器与四元数
16.4 第三人称视角镜头
16.5 制片镜头:镜头样式
16.6 制片镜头:位置算法
16.6.1 选择镜头目标
16.6.2 选择相关信息
16.6.3 选择视图角度
16.7 基于agent的方法
16.8 结束语
第17章 色档
17.1 实际照明
17.1.1 简单绘制方程
17.1.2 按顶点与按像素照明
17.2 灯光贴图
17.2.1 扩散贴图
17.2.2 镜面贴图
17.2.3 使用灯光图的全局照明
17.2.4 实现光贴图:DirectX
17.2.5 用DirectX实现灯光贴图
17.2.6 生成灯光贴图
17.3 BRDF
17.3.1 平均向量
17.3.2 阴影
17.4 非照片真实绘制
17.4.1 铅笔绘制
17.4.2 外形线绘制
17.4.3 划线外形
17.4.4 单帧色档
17.4.5 油画绘制
17.5 结束语
第18章 纹理贴图
18.1 纹理类型
18.1.1 纹理贴图
18.1.2 XYZ贴图
18.1.3 圆柱贴图
18.1.4 球形贴图
18.1.5 三角形纹理贴图
18.2 平铺与贴花
18.3 过滤
18.4 Mip贴图
18.5 纹理优化
18.5.1 纹理压缩
18.5.2 纹理缓存与分页
18.6 多遍方法
18.7 多纹理
18.8 纹理运算与组合
18.9 细节纹理
18.10 环境贴图
18.11 鼓包贴图
18.11.1 浮雕鼓包贴图
18.11.2 Dot3鼓包贴图
18.12 上光贴图
18.13 结束语
第19章 微粒系统
19.1 微粒系统剖析
19.2 微粒数据结束
19.2.1 一般性微粒系统
19.2.2 派生微粒
19.2.3 微粒行为
19.2.4 微粒消除
19.2.5 绘制微粒
19.3 关于体系结构
19.4 加速技术
19.4.1 避免内存分配与释放
19.4.2 空间索引
19.4.3 LOD微粒系统
19.4.4 基于色档的微粒系统
19.5 结束语
第20章 有机构绘制
20.1 自然与细节
20.2 树
20.2.1 告示牌
20.2.2 基于图像方法
20.2.3 平行IBR方法
20.2.4 正交IBR方法
20.3 草
20.3.1 分层草
20.3.2 统计分布算法
20.4 云
20.4.1 天框与园顶
20.4.2 招贴板云
20.4.3 容积云
20.5 海洋
20.5.1 逼真海洋几何
20.5.2 海洋外观
20.5.3 焦散性
20.6 结束语
第21章 过程性技术
21.1 过程性列表
21.2 Renderman
21.3 实时色档语言
21.3.1 当前语言
21.3.2 Cg
21.3.3 HLSL
21.3.4 GL2色档语言
21.4 色档程序类型
21.4.1 色档程序集合
21.4.2 几何效果
21.4.3 灯光
21.5 纹理贴图
21.6 微粒系统
21.7 动画
21.8 特殊效果
21.9 结束语
第22章 几何算法
22.1 点包括测试
22.1.1 球上的点
22.1.2 AABB中的点
22.1.3 凸多边形的点
22.1.4 多边形的点(凹与凸):约当法
22.1.5 曲线定理
22.1.6 凸实体的点
22.1.7 实体的点(约当曲线定理)
22.2 光束相交测试
22.2.1 光束平面
22.2.2 光三角形
22.2.3 光AABB测试
22.2.4 光球测试
22.2.5 光凸形外壳
22.2.6 光一般实体(三维DDA)
22.3 运动测试
22.4 点与三角形集合碰撞(基于BSP)
22.5 网格与网格(清扫与修剪方法)
22.6 计算凸形外壳
22.6.1 二维方案
22.6.2 三维方案
22.7 三角形简化
22.7.1 顶点重合
22.7.2 边重合
22.7.3 递进网格
22.7.4 非保守式三角形简化
22.8 结束语
第三部分 附录
附录A 性能调整
附录B OpenGL
附录C Direct3D
附录D 数学知识
附录E 更多读物
猜您喜欢