DirectX游戏编程
基本信息
推荐阅读
内容简介回到顶部↑
本书主要讲述了利用direct3d进行图形程序开发的核心技术,从三维向量开始,由浅入深,逐步讲解3d图形编程中的矩阵变换相关知识、投影知识,及视口处理、裁剪处理、深度缓存的应用技术。在高级绘图技术中进一步讲解纹理处理、透明及混合技术的应用、模板的应用、光照及阴影技术、网格的应用、利用网格技术处理模型显示、在direct3d程序中显示文字、粒子系统的创建及应用。书的后半部分讲解游戏设计的高级特性,如摄像机封装技术、地形显示技术、场景中的模型捡取。最后讲解gpu编程相关的知识,让用户了解高级着色的相关内容。
本书每章都以简单的实例来辅助对知识点的讲解,力求深入浅出,知识由浅入深,难度是逐渐递增的,另外本书的章节之间没有过分紧密的程序连接,所以有—定基础的人员,可以选择需要的章节单独阅读。
本书面向的群体为高校数字媒体艺术程序设计专业的学生,及自考学生,或有一定编程基础的专业图形编程人员。
本书每章都以简单的实例来辅助对知识点的讲解,力求深入浅出,知识由浅入深,难度是逐渐递增的,另外本书的章节之间没有过分紧密的程序连接,所以有—定基础的人员,可以选择需要的章节单独阅读。
本书面向的群体为高校数字媒体艺术程序设计专业的学生,及自考学生,或有一定编程基础的专业图形编程人员。
目录回到顶部↑
第1部分 必备的数学知识
第1章 基本的数学概念
1.1 三维空间中的向量
1.2 矩阵
1.3 平面
1.4 射线
1.5 小结
第2部分 direct3d基础知识
第2章 direct3d初始化
2.1 dirct3d体系结构
2.2 组件对象模型
2.3 预备知识
2.4 初始化direct3d
2.5 示例:初始化direct3d
2.6 小结
第3章 渲染管道
3.1 描述的模型
3.2 虚拟摄像机
3.3 渲染管道
3.4 小结
第1章 基本的数学概念
1.1 三维空间中的向量
1.2 矩阵
1.3 平面
1.4 射线
1.5 小结
第2部分 direct3d基础知识
第2章 direct3d初始化
2.1 dirct3d体系结构
2.2 组件对象模型
2.3 预备知识
2.4 初始化direct3d
2.5 示例:初始化direct3d
2.6 小结
第3章 渲染管道
3.1 描述的模型
3.2 虚拟摄像机
3.3 渲染管道
3.4 小结
前言回到顶部↑
这是一本讲述如何使用DirectX 9.0编写交互式三维计算机图形程序的书,重点在游戏开发方面。将讲述关于Direct3D的基础知识,使读者能够进一步地学习和使用更高级的技术。当读者看完这本书的时候,对DirectX就会有一个大体的了解。
从程序员的角度看,DirectX是一个用于开发Windows平台下多媒体应用程序的API(Application Programming Interfaces)函数的集合。
本书重点关注DirectX的一个重要子集——Direct3D。就像名字所描述的,Direct3D是一个用于开发三维应用程序的API的集合。当然本书同时也涉及DirectX的其他内容。
本书主要分为4个部分:第1部分主要介绍贯穿于本书的基本数学概念;第2部分将会介绍基本的3D技术,例如光照、纹理、Alpha混合以及模板缓冲区:第3部分主要讲述如何通过Direct3D去实现多种有趣的技术和应用程序,例如图元选取(Picking)、地形渲染(Terrain Render)、粒子系统(Particle System)、通用虚拟摄像机(Camera)以及如何加载和渲染3D模型(.x文件);第4部分的主题是Vertex Shader、Pixel Shader以及特效框架和新的(在DirectX 9中首次出现)高级Shader语言(HLSL)。
当前和未来的三维计算机游戏会更多地运用Shader技术,所以这是一本与现行图形编程密切相关的书。
1.对读者的要求
本书属于基础性的图书,但是这并不表示本书适合于没有任何编程经验的读者。本书要求读者了解代数学、几何学的知识,熟悉游戏程序开发环境(例如Visual C++),掌握C++语言以及链表和数组等基本的数据结构知识,如果读者对Windows程序设计具有一定的了解,将更有助于阅读本书,不过这不是必需的。读者可以通过附录A对Windows程序设计有一个简单的认识。
2.需要的开发工具
本书使用C++语言作为示例的主要编程语言。读者通过阅读DirectX 9.0的帮助文档,可以发现“DirectX 9.0只支持Visual C++ 6.0或者更高版本”。因此,为了使用DirectX 9.0和C++语言开发应用程序,需要拥有Visual C++ 6.0(简称VC 6.0)或者Visual C++ 7.0(.NET)(简称VC 7.0)编程环境。
注意:本书的示例代码都是使用VC 7.0开发和编译的。在大多数情况下,这些代码也可以在VC 6.0中编译和执行。
VC 7.0和VC 6.0会有如下所示的稍许不同。
在VC 7.0中,以下符合语法规则的代码将能编译通过,因为变量cnt将被认为是for循环的局部变量:
int main()
{
for(int cnt=0; cnt(1O; cnt++)
{
std:cout (("hello" ((std:end1;
}
for(iht cnt=0; cnt(10; cnt++)
{
从程序员的角度看,DirectX是一个用于开发Windows平台下多媒体应用程序的API(Application Programming Interfaces)函数的集合。
本书重点关注DirectX的一个重要子集——Direct3D。就像名字所描述的,Direct3D是一个用于开发三维应用程序的API的集合。当然本书同时也涉及DirectX的其他内容。
本书主要分为4个部分:第1部分主要介绍贯穿于本书的基本数学概念;第2部分将会介绍基本的3D技术,例如光照、纹理、Alpha混合以及模板缓冲区:第3部分主要讲述如何通过Direct3D去实现多种有趣的技术和应用程序,例如图元选取(Picking)、地形渲染(Terrain Render)、粒子系统(Particle System)、通用虚拟摄像机(Camera)以及如何加载和渲染3D模型(.x文件);第4部分的主题是Vertex Shader、Pixel Shader以及特效框架和新的(在DirectX 9中首次出现)高级Shader语言(HLSL)。
当前和未来的三维计算机游戏会更多地运用Shader技术,所以这是一本与现行图形编程密切相关的书。
1.对读者的要求
本书属于基础性的图书,但是这并不表示本书适合于没有任何编程经验的读者。本书要求读者了解代数学、几何学的知识,熟悉游戏程序开发环境(例如Visual C++),掌握C++语言以及链表和数组等基本的数据结构知识,如果读者对Windows程序设计具有一定的了解,将更有助于阅读本书,不过这不是必需的。读者可以通过附录A对Windows程序设计有一个简单的认识。
2.需要的开发工具
本书使用C++语言作为示例的主要编程语言。读者通过阅读DirectX 9.0的帮助文档,可以发现“DirectX 9.0只支持Visual C++ 6.0或者更高版本”。因此,为了使用DirectX 9.0和C++语言开发应用程序,需要拥有Visual C++ 6.0(简称VC 6.0)或者Visual C++ 7.0(.NET)(简称VC 7.0)编程环境。
注意:本书的示例代码都是使用VC 7.0开发和编译的。在大多数情况下,这些代码也可以在VC 6.0中编译和执行。
VC 7.0和VC 6.0会有如下所示的稍许不同。
在VC 7.0中,以下符合语法规则的代码将能编译通过,因为变量cnt将被认为是for循环的局部变量:
int main()
{
for(int cnt=0; cnt(1O; cnt++)
{
std:cout (("hello" ((std:end1;
}
for(iht cnt=0; cnt(10; cnt++)
{
评论交流
共有6人开贴评论 10人参与评论 1人参与打分 查看
发表于:2010-9-7 3:06:00
大家好,看到我的用户名,应该猜到我是谁。看到大家的评论,很纠结,有些话要说明一下,临时注册了一个账号上来。我于07年初加入公司,08年底离开。加入时,龙书已出版,而同时公司拥有电子版并单独印刷作为内部教程,据我猜想,应该是译者和公司同时参与了翻译工作。08年上半年,鉴于该书内容已经比较老,根据公司要求,我编写了第二版DirectX教程,并作为内部教程使用(该版内容与龙书完全无关,但章节因为与其他系列教程冲突,所以内容只有第一版三分之二,本人手里有电子版与内部印刷版为证)。09年底,我已离开公司一年之后,听到该书出版的消息,当时以为将出版新版,所以没有反对将我列为作者。10年1月拿到该书发行版后,才发现出版的是第一版。
我对此事遗憾的是,第一,公司尽管可能拥有龙书部分版权,但应当注明原作者姓名,及第一版译者姓名。第二,公司没有选择出版第二版,第一版内容没有反应DirectX几年中的发展情况。本人恬列作者名单,实不敢当。如有可能,愿将姓名从中去除。
我对此事遗憾的是,第一,公司尽管可能拥有龙书部分版权,但应当注明原作者姓名,及第一版译者姓名。第二,公司没有选择出版第二版,第一版内容没有反应DirectX几年中的发展情况。本人恬列作者名单,实不敢当。如有可能,愿将姓名从中去除。
| 我要写评论 |
| 查看所有评论交流(共6条) |







点击看大图






加载中...

