|
哎,由于工作很忙,文章有这么长时间没有更新了。先对大家说声对不起,希望大家能够理解。另外我收到很多读者的email,由于时间关系有的我回复了有的没有。那些没有收到我的回复的读者请不要生气哈,多多原谅。我想文章中肯定有不妥甚至错误的地方,希望读者能将你所发现的email(wengyb@126.com)给我,我会在下一次更新中加以更新的。废话不多说了,教程会按照原定计划继续的.希望大家支持!
注意:这次我把本次更新的以及以前的全部源代码都一起放上来了。以后可能每次就只放更新部分了。还有这次的word文档和源代码压缩后一共有12个压缩包(文档5个+代码7个)。下载以后请将文件名按照次序重命名(如命名为:doc1.rar … doc5.rar,code1.rar … code7.rar)便可以解压了。为了保持帖子的完整性,请在我全部上传后再回帖。谢谢!
=========================
目前内容:
第一部分 必备的数学知识
目标
三维空间中的向量
向量相等
计算向量大小
规范化向量
向量相加
向量相减
数与向量的乘积
点积
叉积
矩阵
相等、数乘矩阵以及相加
乘法
单位矩阵
逆转
矩阵的转置
D3DX 矩阵
基本变换
矩阵平移
矩阵旋转
矩阵缩放
综合变换
一些向量变换函数
平面
D3DX平面
点和平面的空间关系
创建平面
规范化平面
变换平面
点到平面上最近的点
射线(可选的)
射线
线/面相交
摘要(略)
第二部分 Direct3D基础
第一章 初始化Direct3D
目标
1.1 Direct3D概述
1.1.1 REF Device
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摘要(略)
第二章 渲染管道
目标
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中画画
目标
3.1顶点/索引缓存
3.1.1创建一个顶点和索引缓存
3.1.2 访问缓冲内存
3.1.3 找回顶点和索引缓存信息
3.2 渲染状态
3.3 绘制准备
3.4用顶点/索引缓存绘制
3.4.1 IDirect3DDevice9: rawPrimitive
3.4.2 IDirect3DDevice9::DrawIndexedPrimitive
3.4.3 开始/结束场景
3.5 D3DX几何物体
3.6 实例程序:三角形、立方体、茶壶、D3DXCreate*
3.7 摘要(略)
第四章 色彩
目标
4.1 颜色表示法
4.2 顶点颜色
4.3 着色处理
4.4 实例程序:彩色三角形
4.5 摘要(略)
第五章 灯光
目标
5.1灯光的组成
5.2材质
5.3顶点法线
5.4光源
5.5实例程序:灯光
5.6附加实例
5.7摘要(略)
第六章 纹理
目标
6.1 纹理坐标
6.2创建并赋予材质
6.3过滤器
6.4 Mipmaps
6.4.1 Mipmaps过滤器
6.4.2 Direct3D中使用Mipmaps
6.5 寻址模式
6.6实例程序:有纹理的方块
6.7摘要(略)
第七章 混合
目标
7.1混合因素
7.2混合要素
7.3透明度
7.3.1Alpha通道
7.3.2指定Alpha资源
7.4使用DirectX纹理工具创建Alpha通道
7.5实例程序:透明度
7.6摘要(略)
==========更新内容===========
第八章 模版
目标
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
第九章 字体
目标
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
目标
10.1 几何信息
10.2 子集和属性缓存
10.3 绘制
10.4 优化
10.5 属性表
10.6 邻接信息
10.7 复制
10.8 创建一个Mesh(D3DXCreateMeshFVF)
10.9 实例程序:创建和渲染Mesh
10.10 摘要(略)
第十一章 网格模型II
目标
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 摘要(略)
第十二章 创建灵活的摄像机类
目标
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 摘要(略)
===========================
明天继续........ |
|