下载地址:
下载地址1资源简介:
中文名: 3D游戏:卷1.实时渲染与软件技术原名: 3D Games Real-Time Rendering and Software Technology, Volume 1作者: (英)Alan WattFabio Policarpo译者: 沈一帆陈文斌朱怡波资源格式: PDF版本: 扫描版出版社: China Machine Press书号: 7111156528发行时间: 2005年2月地区: 大陆语言: 简体中文简介: 内容介绍: 本书综合介绍当前流行的三维游戏开发技术,主要内容包括:建模及基础数学,经典的三维图形学,实时渲染,对象的控制,二维技术,软件技术等。 书中的所有内容都是围绕一个功能强大的游戏开发引擎,即Fly3D来写的。其目的是使你可以编写源代码来实现自己的想法,或是通过编写或修改插件来对现有的实例进行试验,甚至可以开发属于自己的游戏。随书光盘给出了完整的Fly 3D SDK及一些演示片段和图片。 本书适合作为高等院校相关专业的本科生或研究生的教学参考书,同时可供相关技术人员及游戏开发人员阅读。作者介绍: Alan Watt英国谢菲尔德大学计算机科学系讲师,是该校计算机图形学研究室主任,曾经编写过多本优秀著作,包括《3D计算机图形学》(即将由机械工业出版社出版)和《The Computer Image》。 Fabio Policarpo里约热内卢的软件开发者,他是Paralelo计算机公司的创始人,目前正致力于独立三维动作多玩家游戏的研究。目录: 出版者的话专家指导委员会译者序 前言第一部分 基础知识第1章 三维计算机图形学的数学基础1.1 处理三维结构1.1.1 计算机图形学中的三维几何学1.1.2 改变坐标系的变换1.2 向量与计算机图形学1.2.1 向量加法1.2.2 向量的长度1.2.3 法向量与叉积1.2.4 法向量与点积1.2.5 与法向量相关的向量1.3 光线与计算机图形学1.3.1 光线几何学——交点1.3.2 光线与球体的交点1.3.3 光线与凸多边形的交点1.3.4 光线与长方体的交点1.4 多边形性质的双线性插值1.5 使用simd指令集的基础数学引擎第2章 建模与表示1--对比回顾与多边形网格模型2.1 简介2.2 三维物体的多边形表示2.2.1 创建多边形对象2.2.2 多边形对象的手工建模2.2.3 多边形对象的自动生成2.2.4 多边形对象的交互式/数学生成2.3 高级方法--构造性实体几何法2.4 应用建模器或编辑器的高级方法第3章 建模与表示2--多边形网格的经济性3.1 多边形模型压缩3.2 几何形状压缩(每个顶点的信息)3.3 编码连接3.4 三角链3.5 局部与全局算法3.6 顶点缓冲的应用3.7 细节层次处理第4章 建模与表示3--地形特殊化4.1 简介4.2 简单的高度场地形4.3 地形的建模过程--分形4. 4 地形lod:三角二叉树4.5 用光线投射的方法渲染地形第5章 建模与表示4--贝济埃、b样条和细分曲面5.1 简介5.2 贝济埃曲线5.2.1 分段贝济埃曲线的连接5.2.2 贝济埃曲线性质小结5.3 B样条曲线5.3.1 均匀B样条5.3.2 非均匀B样条5.3.3 B样条曲线特征小结5.4 有理曲线5.4.1 有理贝济埃曲线5.4.2 NURBS5.5 从曲线到曲面5.5.1 连续性与贝济埃面片5.5.2 贝济埃面片物体——犹他茶壶5.5.3 B样条曲面片5.6 建模或创建面片曲面5.6.1 用面片的横截面建模5.6.2 编辑面片网络——改变存在的网络5.6.3 用曲面拟合创建面片物体5.7 渲染参数曲面5.8 游戏中的实用贝济埃技术5.8.1 双二次网络格亚采样5.8.2 曲面、物体和细分5.9 细分曲面5.9.1 Catmull-Clark细分5.9.2 蝴蝶细分5.9.3 改进的蝴蝶算法5.10 缩放性--多边形网格、面片网格和细分曲面5.10.1 LOD多边形网格5.10.2 面片网格5.10.3 细分表面第二部分 传统3d图形处理方法第6章 传统多边形网格渲染技术6.1 图形流水线中的坐标空间和几何操作6.1.1 局部或模型坐标系6.1.2 世界坐标系6.1.3 照相机(或眼睛、视见)坐标系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 渲染示例6.4.1 图6-36(见彩页)6.4.2 图6-37(见彩页)6.4.3 图6-38(见彩页)6.4.4 图6-40(见彩页)6.4.5 图6-41(见彩页)第7章 传统映射技术7.1 简介7.2 二维纹理贴图到多边形网格物体7.2.1 使用双线性值的逆向映射7.2.2 使用中间表面的逆向映射方法7.2.3 使用纹理映射7.3 二维纹理空间到双三次参数曲面片物体7.4 凹凸纹理映射7.4.1 凸凹纹理映射的多通道技术7.4.2 针对凸凹纹理映射的预计算技术7.5 环境映射技术7.5.1 立方体映射7.5.2 球面映射7.5.3 环境映射:要点比较7.6 三维纹理域技术7.5.1 三维噪声函数7.5.2 模拟湍流7.5.3 三维纹理和动画7.5.4 三维光照贴图7.7 对比试验7.7.1 图7-23(见彩页)7.7.2 图7-24(见彩页)7.7.3 图7-25(见彩页)第8章 反走样理论和实践8.1 简介8.2 走样和采样8.3 锯齿边8.4 计算机图形采样和实际采样的比较8.5 采样和重构8.6 简单的比较8.7 前滤波方法8.8 超采样或后滤波8.9 纹理映射中的反走样8.10 图像的傅里叶变换第三部分 实时渲染第9章 复杂场景的可视性处理9.1 简介9.2 为什么要用树结构9.2.1 空间细分层次9.2.2 八叉树9.3 BSP树9.4 包围体层次结构9.5 BSP树和多边形物体9.5.1 BSP树和隐面消除9.5.2 怎样为多边形网格常见创建BSP树9.5.3 背面筛选9.5.4 对照视见约束体进行筛选9.5.5 影响范围9.5.6 实用BSP树9.5.7 地形和BSP技术9.6 用于构造内型环境的特殊手段9.7 入口和镜子9.8 高级视见约束体筛选9.8.1 开发BV几何性质9.8.2 在视见约束体筛选中开发一致性9.9 精确的可视性9.9.1 精确的可视性和预计算9.9.2 可视性过程的排序策略9.9.3 视见约束体内的可视性:闭塞筛选9.10 动态物体及其可视性第10章 游戏中的光照效果10.1 光照贴图10.1.1 光照贴图选取10.1.2 多边形/光照贴图的一致性10.1.3 光照贴图的动态光照效果10.2 使用光照贴图的动态光照效果10.2.1 运动物体(常用)10.2.2 移动的(以观察者为中心的)聚光灯10.2.3 运动物体和环境光10.2.4 运动物体和Gouraud明暗模型10.3 动态光源10.4 可调/可分离的光源10.5 雾贴图/容积雾10.6 光照例子的研究第11章 游戏中的阴影11.1 阴影的特性11.1.1 计算机图形学中阴影的特性11.1.2 地面上的简单阴影11.2 经典的阴影算法11.2.1 阴影算法: 多边形投影/扫描线11.2.2 阴影算法: 阴影体11.2.3 阴影算法: 光源变换到阴影多边形的来历11.2.4 阴影算法: 阴影Z缓冲11.3 游戏中的阴影11.3.1 在光照贴图中加入阴影11.3.2 柔和阴影11.3.3 动态物体的快速阴影第12章 多路渲染12.1 简介12.2 多路函数性12.2.1 合成渲染图像12.2.2 混合(OpenGL)12.2.3 Z缓冲(OpenGL)12.2.4 累加缓冲(OpenGL)12.2.5 模板缓冲(OpenGL)12.3 多路算法12.3.1 由后向前透明12.3.2 平面反射12.3.3 多路阴影体12.3.4 多路阴影体——实现12.3.5 光照对象12.4 多路采样方法12.5 多纹理12.6 多纹理实例12.6.1 细节调节12.6.2 视角依赖的细节光照贴图12.6.3 将多纹理用作最终光照模型第四部分 对象的控制第13章 运动控制13.1 简介13.2 对动画进行预编辑--线性插值及耗用时间13.3 预编辑动画--插值问题13.4 预编辑动画--显式编辑13.5 旋转插值13.6 用四元数表示旋转13.6.1 四元数的插值13.6.2 移入与移出四元数空间13.6.3 球星的线性插值13.7 将照相机作为动画对象13.8 粒子动画13.9 粒子动画与计算机游戏 13.10 关节结构第14章 动态仿真控制14.1 著名示例--脱机动画中的动力学14.2 初值问题和边值问题14.3 主题范围14.4 动态仿真的动机14.5 基本经典粒子论14.6 基本经典刚体论14.6.1 线动量、角动量和质心14.6.2 世界参照系和物体参照系14.6.3 刚体的方向14.6.4 角速度14.6.5 刚体——力和力矩14.6.6 惯性张量14.6.7 碰撞反应14.7 动态仿真的实用性14.7.1 一般动力学模块14.7.2 确定确切的碰撞时间14.7.3 应用依赖性14.7.4 简单例子14.7.5 预计算和在线仿真14.7.6 时空约束14.8 数值积分14.8.1 欧拉方法和误差14.8.2 多步法——Adams-Bashforth14.8.3 预测-校正14.8.4 Runge-Kutta14.8.5 自适应方法第15章 碰撞检测15.1 广义/狭义二阶段算法15.2 包围体层次结构15.3 使用aabb的广义碰撞检测15.3.1 OBB树13.3.2 建造OBB树15.4 使用obb的广义碰撞检测15.5 使用局部或对象空间划分的广义碰撞检测15.6 狭义碰撞检测15.6.1 凸多面体对——精确碰撞检测15.6.2 Lin-Canny最近特征算法15.6.3 分割面15.7 单阶段方法15.7.1 BSP树15.7.2 局部或对象空间划分——BSP树合并15.7.3 球体/多面体的特殊化处理15.7.4 使用深度缓存15.7.5 Hubbard的时间攸关球树算法——单步方法第16章 交互控制16.1 交互与动画16.2 控制器模块16.3 用户-对象交互——使用简单阻尼的6自由度控制16.4 用户-对象动画——4键汽车仿真16.5 对象-对象交互16.6 照相机-对象交互16.7 具有简单自治行为的对象16.7.1 炮台16.7.2 机器人飞行物体16.8 用户-场景交互第17章 行为与人工智能17.1 确定的方法和体系结构17.1.1 有限状态机17.1.2 模糊状态机17.2 主体和层次17.2.1 反射或反应主体17.2.2 具有内部状态的反射主体17.2.3 基于目标的主体17.3 主体体系结构的例子17.4 认知模型和情景演算17.5 作为例子的感知视觉的作用17.6 认知结构17.6.1 认知和神经网络17.6.2 两个线性可分模式类的感知器17.6.3 n类别的感知器17.6.4 MLP前馈神经网络17.6.5 向后传播算法第五部分 二维技术第18章 二维技术18.1 图像金字塔18.2 小波变换18.3 图像变换与基矩阵18.4 小波与计算机游戏 18.5 图像变形--变形转换技术18.5.1 变形转换二维图像18.5.2 二样条网格扭曲第19章 基于图像的渲染19.1 简介19.2 重复使用已绘制的图像--二维技术19.2.1 平面插板的有效性19.2.2 布告板和光照效果19.2.3 布告板和光照效果19.3 变化的渲染资源19.3.1 优先渲染19.3.2 图形分层19.4 使用深度信息19.4.1 三维卷绕19.4.2 分层深度图像(LDI)19.4.3 使用LDI的入口图像19.5 视见插值19.6 四维技术--泛光或光场渲染方法19.7 照片建模和ibr19.7.1 使用照片全景的基于图像的渲染19.7.2 合成全景图第六部分 软件技术第20章 多人游戏技术20.1 简介20.2 定义20.3 多人游戏的实现20.4 多人游戏所面临的问题20.4.1 延迟发生的原因20.4.2 延迟语义学、消息丢失和重组20.5 简化通信信息22.5.1 数据压缩22.5.2 预测性方法22.5.3 一致性20.6 应用客户-服务器模式实现多人游戏 第21章 引擎体系结构21.1 c++游戏编程21.1.1 类21.1.2 构造函数21.1.3 析构函数21.1.4 继承性21.1.5 虚拟函数21.1.6 运算符21.1.7 模板21.1.8 公有性/私有性/保护性21.2 游戏中复杂度的管理和改进21.3 引擎设计和体系结构21.4 Fly3D软件体系结构21.4.1 插件21.4.2 Fly3D前端和梅帧中的主要渲染操作21.4.3 碰撞检测21.4.4 库存和活动对象列表21.4.5 作用球21.4.6 对象与插件间的通信21.4.7 照相机和场景绘制21.4.8 文本输出21.4.9 渲染API第22章 Fly3D软件开发工具包参考22.1 简介22.2 全局参考22.3 对象参考22.3.1 类anim_mesh: public mesh22.3.2 类base_object22.3.3 类bezier_curve:public base_object22.3.4 类bezier_patch:public base_object22.3.5 类boundbox22.3.6 类bsp_node:public plane22.3.7 类bsp_object:public base_object, particle, local_systeem22.3.8 类class_desc22.3.9 类console22.3.10 类direct_X22.3.11 类face:public plane22.3.12 类fly_pak22.3.13 类fly_pak_util22.3.14 类flydll22.3.15 类flydllgroup22.3.16 类flyEngine22.3.17 类light_map22.3.18 类light_map_pic22.3.19 类light_vertex22.3.20 类local_system22.3.21 类mat4X422.3.22 类mesh:public base_object22.3.23 类mp_games22.3.24 类mp_msg22.3.25 类param_desc22.3.26 类particle22.3.27 类picture22.3.28 类plane22.3.29 类player_data22.3.30 类render22.3.31 类renderGL: public render22.3.32 类sound: public base_object22.3.33 类static_mesh: public bsp_object22.3.34 类stripfan_mesh22.3.35 类textcache22.3.36 类textcacheGL: public text-cache22.3.37 类vector附录A Fly3D SDK教程参考文献
飞网下载站,免费下载共享资料,内容涉及教育资源、专业资料、IT资源、娱乐生活、经济管理、办公文书、游戏资料等。