logo资料库

DirectX游戏制作基础.doc

第1页 / 共735页
第2页 / 共735页
第3页 / 共735页
第4页 / 共735页
第5页 / 共735页
第6页 / 共735页
第7页 / 共735页
第8页 / 共735页
资料共735页,剩余部分请下载后查看
《DirectX 9 3D游戏设计入门》
第一部分 必备的数学知识(Mathematical Prerequisites)
目标
三维空间中的向量
向量相等
计算向量大小(向量的模)
标准化向量
向量相加
向量相减
标量与向量的乘积
点积
叉积
矩阵
相等、数乘矩阵以及相加
乘法
单位矩阵
逆转
矩阵的转置
D3DX 矩阵
基本变换
矩阵平移
矩阵旋转
矩阵缩放
综合变换
一些向量变换函数
平面
D3DX平面
点和平面的空间关系
创建平面
标准化平面
变换平面
点到平面上最近的点
射线(可选的)
射线
线/面相交
摘要(略)
第二部分 Direct3D基础(Direct3D Fundamentals)
第一章 初始化Direct3D(Direct3D Initialization)
目标
1.1 Direct3D概述
1.1.1 REF设备
1.1.2 D3DDEVTYPE
1.2 COM
1.3 一些准备工作
1.3.1 表面
1.3.2 Multisampling
1.3.3像素格式
1.3.4 内存池.............
1.3.5 交换链和页面切换
1.3.6 深度缓冲
1.3.7 顶点处理
1.3.8 设备能力
1.4 初始化Direct3D
1.4.1获得IDirect3D9接口
1.4.2 检测硬件顶点处理
1.4.3 填充D3DPRESENT_PARAMETERS结构
1.4.4 创建IDirect3DDevice9对象
1.5 初始化Direct3D实例
1.5.1 d3dUtility.h/cpp
1.5.2 实例框架
1.5.3 D3D Init实例
1.6摘要(略)
第二章 渲染管线(The Rendering Pipeline)
目标
2.1表现模型
2.1.1 顶点格式
2.1.2 三角形
2.1.3 索引
2.2虚拟照相机
2.3 渲染管线
2.3.1自身坐标系(Local Space)
2.3.2世界坐标系(World Space)
2.3.3视图坐标系(View Space)
2.3.4背面拣选(Backface Culling)
2.3.5光源(Lighting)
2.3.6裁剪(Clipping)
2.3.7投影(Projection)
2.3.8视口变换(Viewport Transform)
2.3.9光栅化(Rasterization)
2.4 摘要(略)
第三章 在Direct3D中绘制(Drawing in Direct3D)
目标
3.1顶点/索引缓存
3.1.1创建一个顶点和索引缓存
3.1.2 访问缓冲内存
3.1.3 找回顶点和索引缓存信息
3.2 渲染状态
3.3 绘制准备
3.4用顶点/索引缓存绘制
3.4.1 IDirect3DDevice9::DrawPrimitive
3.4.2 IDirect3DDevice9::DrawIndexedPrimitive
3.4.3 开始/结束场景
3.5 D3DX几何物体
3.6 实例程序:三角形、立方体、茶壶、D3DXCreate*
3.7 摘要(略)
第四章 色彩(Color)
目标
4.1颜色表示法
4.2 顶点颜色
4.3 着色处理
4.4 实例程序:彩色三角形
4.5 摘要(略)
第五章 灯光(Lighting)
目标
5.1灯光的组成
5.2材质
5.3顶点法线
5.4光源
5.5实例程序:灯光
5.6附加实例
5.7摘要(略)
第六章 纹理(Texturing)
目标
6.1 纹理坐标
6.2创建并赋予材质
6.3过滤器
6.4 Mipmaps
6.4.1 Mipmaps过滤器
6.4.2 Direct3D中使用Mipmaps
6.5 寻址模式
6.6实例程序:有纹理的方块
5.7摘要(略)
第七章 混合(Blending)
目标
7.1混合因素
7.2混合要素
7.3透明度
7.3.1Alpha通道
7.3.2指定Alpha资源
7.4使用DirectX纹理工具创建Alpha通道
7.5实例程序:透明度
7.6摘要(略)
第八章 模版(Stenciling)
目标
8.1使用模版缓存
8.1.1请求一个模版缓存
8.1.2模版测试
8.1.3控制模版测试
8.1.3.1模版参考值(Reference Value)
8.1.3.2模版掩码
8.1.3.3模版值(Stencil Value)
8.1.3.4比较运算
8.1.3更新模版缓存
8.1.4模版写掩码
8.2实例程序:镜子
8.2.1反射数学
8.2.2镜面实现流程
8.2.3代码和解释
8.2.3.1第一部分
8.2.3.2第二部分
8.2.3.3第三部分
8.2.3.4第四部分
8.2.3.5第五部分
8.3实例程序:平面阴影
8.3.1平行光阴影
8.3.2点光源阴影
8.3.3阴影矩阵
8.3.4用模版缓存防止双倍混合
8.3.5代码和解释
8.4摘要(略)
第三部分 实用的Direct3D(Applied Direct3D)
第九章 字体(Fonts)
目标
9.1 ID3DXFont
9.1.1创建一个ID3DXFont
9.1.2绘制文本
9.1.3计算每秒的渲染帧数
9.2 CD3DFont
9.2.1创建一个CD3DFont
9.2.2绘制文本
9.2.3 清除
9.3 D3DXCreateText
9.4摘要(略)
第十章 网格模型I(Meshes Part I)
目标
10.1 几何信息
10.2 子集和属性缓存
10.3 绘制
10.4 优化
10.5 属性表
10.6 邻接信息
10.7 复制
10.8 创建一个Mesh(D3DXCreateMeshFVF)
10.9 实例程序:创建和渲染Mesh
10.10 摘要(略)
第十一章 网格模型II(Building a Flexible Camera Class)
目标
11.1 ID3DXBuffer
11.2 X文件
11.2.1读取X文件
11.2.2 X文件的材质
11.2.3 实例程序:X文件
11.2.4 产生顶点法线
11.3渐进网格(Progressive Meshes)
11.3.1 产生一个渐进网格
11.3.2 顶点品质权重
11.3.3 ID3DXPMesh方法
11.3.4实例程序:渐进网格
11.4 界线容积(Bounding Volumes)
11.4.1一些新的特殊常量
11.4.2界线容积类型
11.4.3实例程序:界线容积
11.5 摘要(略)
第十二章 创建灵活的摄像机类(Building a Flexible Camera Class)
目标
12.1 摄像机设计
12.2 执行详细资料
12.2.1计算视图矩阵
12.2.1.1 第一部分:平移
12.2.1.2 第二部分:旋转
12.2.1.3 将两部分合并
12.2.2围绕任意轴旋转
12.2.3 Pitch、Yaw和Roll
12.2.4 Walking、Strafing和Flying
12.3实例程序:摄像机
12.4 摘要
第十三章 地形渲染基础(Basic Terrain Rendering)
目标
13.1 Heightmaps(高度图)
13.1.1 创建高度图(Heightmap)
13.1.2 读取RAW文件
13.1.3 访问与修改Heightmap
13.2 生成地形几何数据
13.2.1 计算顶点
13.2.2 计算索引-定义三角形
13.3 纹理
13.3.1 程序上的处理方法
13.4 光照
13.4.1概览(OVERVIEW)
13.4.2 计算方格的阴影(Shade)
13.4.3 地形阴影(Shading)
13.5 在地形上“行走”
13.6 例子程序: Terrain
13.7 一些改进
13.8 摘要
第十四章 粒子系统(Particle Systems)
目标:
14.1 粒子和点精灵(Point Sprite)
14.1.1 结构的格式
14.1.2点精灵(Point Sprite)渲染状态
14.1.3 粒子和他们的属性
14.2 粒子系统的组成
14.2.1 绘制粒子系统
14.2.2 随机
14.3 具体的粒子系统:雪、火、粒子枪
14.3.1 例子程序:雪
14.3.2 例子程序:火
14.3.3 例子程序:粒子枪
14.4 摘要
第十五章 选取(Picking)
概览(OVERVIEW)
目标
15.1 屏幕到投影窗口的转换
15.2 计算射线
15.3 变换射线
15.4 射线-对象 交点
15.5 例子程序:选取
15.6 摘要
第四部分 着色器和特效(Shaders and Effects)
第十六章 高级着色器语言入门(Introduction to the High-Level Sha
目标
16.1 编写HLSL 着色器
16.1.1 全局变量
16.1.2 输入和输出结构
16.1.3 函数的入口点
16.2 编译HLSL 着色器
16.2.1 常量表
16.2.1.1 取得常量句柄
16.2.1.2 设置常量
16.2.1.3 设置常量默认值
16.2.2 编译HLSL着色器
16.3 变量类型
16.3.2 向量类型
16.3.3 矩阵类型
16.3.4 数组
16.3.5 结构
16.3.6 typedef关键字
16.4关键字、语句和强制转换
16.4.1 关键字
16.4.2 基本程序流程
16.4.3 强制转换(casting)
16.5 操作符
16.6 用户定义函数
16.7内建函数
16.8 摘要
第十七章 顶点着色器入门(Introduction to Vertex Shaders)
概览
目标
17.1顶点声明
17.1.1 描述顶点声明
17.1.2 创建顶点声明
17.1.3 使用一个顶点声明
17.2顶点数据用途
17.3使用顶点着色器的步骤
17.3.1 编写并编译顶点着色器
17.3.2 创建顶点着色器
17.3.3 建立顶点着色器
17.3.4 销毁顶点着色器
17.4样例应用程序:散射光照
17.5 卡通渲染
17.5.1 卡通着色
17.5.2 卡通着色的顶点着色器代码
17.5.3轮廓勾勒
17.5.3.1 边的表示法
17.5.3.2 轮廓边测试
17.5.3.3 边的生成
17.5.4 轮廓边顶点着色器代码
17.6 摘要
第十八章 像素着色器入门(Introduction to Pixel Shaders)
目标
18.1多纹理化概览
18.1.1 允许多个纹理
18.1.2 多纹理坐标
18.2像素着色器输入和输出
18.3使用像素着色器的步骤
18.3.1 编写并编译像素着色器
18.3.2 创建像素着色器
18.3.3 建立像素着色器
18.3.4 销毁像素着色器
18.4 HLSL采样器对象
18.5 例子程序:Multitexturing in a Pixel Shader
18.6 摘要
第十九章 效果架构(The Effects Framework)
概览
目标
19.1 技术与传递(Techniques and Passes)
19.2 更多HLSL内置对象( More HLSL Intrinsic Objects)
19.2.1 纹理对象
19.2.2 采样器对象与采样器状态
19.2.3 顶点与像素着色器对象(Vertex and Pixel Shader Objects)
19.2.4 字符串
19.2.5 注解 (Annotations)
19.3 效果文件的设备状态( Device States in an Effect File)
19.4 创建效果
19.5 设置系数(Setting Constants)
19.6 使用效果
19.6.1 获得效果句柄( Obtaining a Handle to an Effect)
19.6.2 激活一个效果( Activating an Effect)
19.6.3 启动效果
19.6.4 设置当前的渲染传递(Setting the Current Rendering Pas
19.6.5 结束效果(Ending an Effect)
19.6.6 例子
19.7 例子程序: Lighting and Texturing in an Effect Fil
19.8例子程序: Fog Effect
19.9例子程序: Cartoon Effect
19.10 效果编辑(EffectEdit)
19.11摘要
相关文章:
AGP内存
Direct3D中实现图元的鼠标拾取
1、什么是拾取,拾取能做什么?
2、拾取操作的步骤和实现
2.1. 变换并获得通过视点和屏幕上点击点的射线矢量(Dir)
2.2 使用射线矢量对场景中的所有三角形图元求交,获得三角形索引值和重心坐标。
3、结束及声明
4、参考文献
克莱姆(Cramer)法则
一、线性方程组
三、齐次线性方程组
四、例子
《DirectX 9 3D 游戏设计入门》 《Introduction to 3D Game Programming with DirectX 9》 ISBN:1556229135 by Frank Luna Wordware Publishing © 2003 (388 pages) This text provides an introduction to programming interactive 3D computer graphics using DirectX 9.0, with an emphasis on game development. 随 书 代 码 下 载 地 址 : http://www.moon-labs.com/ml_book_samples.h tm
– 翻译: 12 章 01 章 Email:WengYB@126.com 19 章 13 章 Email:zzprogram@21cn.com – 翁 云 兵 天 兵 首先感谢游戏开发资源网,让我发现了翁云 兵老兄翻译的前 12 章,从此让我有信心从事 D3D 游戏的开发,再次感谢翁云兵,还有在我学习中 给予帮助的网友们,对初学者的帮助与指导。出 于同样的目的,我将整理后的文档再次发到网 上,希望能帮助更多热爱游戏开发的朋友。 本教程由天兵收集、翻译并整理,最初是为 方便自己学习,非专业翻译,如有不准确的地方 请谅解。欢迎提出翻译错误的章节,请联系: zzprogram@21cn.com。 本书没有取得作者授权,此翻译版本纯属个 人爱好,不得用于传播以及其他商业目的,只供 爱好者参考使用,希望用户下载完毕后 24 小时
之内自觉删除!如果喜欢请购买正版支持!
《DirectX 9 3D 游戏设计入门》 .....................1 第 一 部 分 必 备 的 数 学 知 识 (Mathematical Prerequisites) .............................................21 目标...................................................................22 三维空间中的向量...........................................22 向量相等...........................................................28 计算向量大小(向量的模)...........................30 标准化向量.......................................................31 向量相加...........................................................32 向量相减...........................................................33 标量与向量的乘积...........................................34 点积...................................................................35 叉积...................................................................36 矩阵...................................................................38 相等、数乘矩阵以及相加...............................39 乘法...................................................................40 单位矩阵...........................................................42 逆转...................................................................43 矩阵的转置.......................................................44 D3DX 矩阵...................................................... 44 基本变换...........................................................51
矩阵平移...........................................................54 矩阵旋转...........................................................56 矩阵缩放...........................................................58 综合变换...........................................................59 一些向量变换函数...........................................61 平面...................................................................63 D3DX 平面....................................................... 64 点和平面的空间关系.......................................65 创建平面...........................................................66 标准化平面.......................................................68 变换平面...........................................................69 点到平面上最近的点.......................................70 射线(可选的)...............................................71 射线...................................................................72 线/面相交..........................................................72 摘要(略).......................................................73 第 二 部 分 Direct3D 基 础 (Direct3D Fundamentals) ........................................... 74 第一章 初始化 Direct3D (Direct3D Initialization) ................................................................. 74 目标...................................................................74 1.1 Direct3D 概述.............................................75
1.1.1 REF 设备..............................................76 1.1.2 D3DDEVTYPE....................................77 1.2 COM............................................................77 1.3 一些准备工作............................................78 1.3.1 表面.....................................................78 1.3.2 Multisampling...................................... 82 1.3.3 像素格式..............................................83 1.3.4 内存池.................................................85 1.3.5 交换链和页面切换.............................86 1.3.6 深度缓冲.............................................88 1.3.7 顶点处理.............................................90 1.3.8 设备能力.............................................90 1.4 初始化 Direct3D....................................... 92 1.4.1 获得 IDirect3D9 接口..........................93 1.4.2 检测硬件顶点处理.............................94 1.4.3 填 充 D3DPRESENT_PARAMETERS 结构...............................................................97 1.4.4 创建 IDirect3DDevice9 对象........... 101 1.5 初始化 Direct3D 实例.............................103 1.5.1 d3dUtility.h/cpp..................................104 1.5.2 实例框架...........................................109 1.5.3 D3D Init 实例....................................110
1. 6 摘要(略).............................................. 115 第二章 渲染管线 (The Rendering Pipeline) 116 目标.................................................................116 2.1 表现模型...................................................117 2.1.1 顶点格式........................................... 118 2.1.2 三角形...............................................120 2.1.3 索引...................................................121 2.2 虚拟照相机...............................................123 2.3 渲染管线..................................................124 2.3.1 自身坐标系(Local Space)............ 125 2.3.2 世界坐标系(World Space)........... 126 2.3.3 视图坐标系(View Space).............129 2.3.4 背面拣选(Backface Culling)........ 131 2.3.5 光源(Lighting).............................. 133 2.3.6 裁剪(Clipping)..............................134 2.3.7 投影(Projection)........................... 134 2.3.8 视口变换(Viewport Transform)... 138 2.3.9 光栅化(Rasterization)...................140 2.4 摘要(略)................................................... 140 第 三 章 在 Direct3D 中 绘 制 (Drawing in Direct3D) ................................................. 141 目标.................................................................141
3.1 顶点/索引缓存..........................................141 3.1.1 创建一个顶点和索引缓存................142 3.1.2 访问缓冲内存...................................146 3.1.3 找回顶点和索引缓存信息...............149 3.2 渲染状态..................................................151 3.3 绘制准备..................................................152 3.4 用顶点/索引缓存绘制..............................154 3.4.1 IDirect3DDevice9::DrawPrimitive.... 154 3.4.2 IDirect3DDevice9::DrawIndexedPrimitive.155 3.4.3 开始/结束场景..................................158 3.5 D3DX 几何物体....................................... 158 3.6 实 例 程 序 : 三 角 形 、 立 方 体 、 茶 壶 、 D3DXCreate*..................................................160 3.7 摘要(略)..............................................170 第四章 色彩 (Color) ................................. 171 目标.................................................................171 4.1 颜色表示法............................................. 171 4.2 顶点颜色..................................................178 4.3 着色处理..................................................179 4.4 实例程序:彩色三角形..........................180 4.5 摘要(略)................................................... 185
分享到:
收藏