这是一本讲述如何使用DirectX 9.0编写交互式三维计算机图形程序的书,重点在游戏开发方面。将讲述关于Direct3D的基础知识,使读者能够进一步地学习和使用更高级的技术。当读者看完这本书的时候,对DirectX就会有一个大体的了解。
本书重点关注DirectX的一个重要子集——Direct3D。就像名字所描述的,Direct3D是一个用于开发三维应用程序的API的集合。当然本书同时也涉及DirectX的其他内容。
本书主要讲述了利用Direct3D进行图形程序开发的核心技术,从三维向量开始,由浅入深,逐步讲解3D图形编程中的矩阵变换相关知识、投影知识,及视口处理、裁剪处理、深度缓存的应用技术。在高级绘图技术中进一步讲解纹理处理、透明及混合技术的应用、模板的应用、光照及阴影技术、网格的应用、利用网格技术处理模型显示、在Direct3D程序中显示文字、粒子系统的创建及应用。书的后半部分讲解游戏设计的高级特性,如摄像机封装技术、地形显示技术、场景中的模型捡取。最后讲解GPU编程相关的知识,让用户了解高级着色的相关内容。
本书每章都以简单的实例来辅助对知识点的讲解,力求深入浅出,知识由浅入深,难度是逐渐递增的,另外本书的章节之间没有过分紧密的程序连接,所以有一定基础的人员,可以选择需要的章节单独阅读。
本书面向的群体为高校数字媒体艺术程序设计专业的学生,及自考学生,或有一定编程基础的专业图形编程人员。
第1部分 必备的数学知识
第1章 基本的数学概念
1.1 三维空间中的向量
1.1.1 向量的相等
1.1.2 向量模的计算
1.1.3 向量归一化
1.1.4 向量加法
1.1.5 向量减法
1.1.6 数乘
1.1.7 点乘
1.1.8 叉乘
1.2 矩阵
1.2.1 矩阵的相等、矩阵数乘和矩阵加法
1.2.2 矩阵乘法
1.2.3 单位矩阵
1.2.4 逆矩阵
1.2.5 矩阵的转置
1.2.6 D3DX中的矩阵
1.2.7 基本变换
1.2.8 平移变换
1.2.9 旋转矩阵
1.2.10 缩放矩阵
1.2.11 组合变换
1.2.12 一些用于向量变换的函数
1.3 平面
1.3.1 D3DX中的平面
1.3.2 点和平面之间的关系
1.3.3 构建平面
1.3.4 标准化一个平面
1.3.5 对平面进行变换操作
1.3.6 求到一个指定点距离最短的平面上的点
1.4 射线
1.4.1 射线的表达式
1.4.2 射线与平面的相交
1.5 小结
第2部分 Direct3D基础知识
第2章 Direct3D初始化
第3章 渲染管道
第4章 在Direct3D中绘制图形
第5章 颜色
第6章 光照
第7章 纹理
第8章 混合技术
第9章 模板缓冲区
第3部分 Direct3D的应用
第10章 文字处理
第11章 网格(1)
第12章 网格(2)
第13章 构建一个灵活的摄像机类
第14章 基本地形渲染
第15章 粒子系统
第16章 捡取
第4部分 Shader和特效
第17章 高级Shader语言的介绍
第18章 Vertex Shader的介绍
第19章 Pixel Shader入门
第20章 特效框架(Effects Framework)
附录A Windows程序设计简介
参考文献