没有合适的资源?快使用搜索试试~ 我知道了~
DirectX程序指南以及函数的调用
需积分: 10 14 下载量 30 浏览量
2011-03-13
02:27:47
上传
评论
收藏 1.47MB DOCX 举报
温馨提示
试读
64页
对于刚开始学Directx的以及对游戏编程感兴趣的都可看到一些比较实用的东西,这是本人学习之后总结的一些比较常用到的东西希望能帮助到大家
资源推荐
资源详情
资源评论
环境配置
安装
设置环境
【工具】【选项】目录,输入路径
默认情况下:
!"#$!!%&'()(包含文件)
!"#$!!%*+,-."库文件
/)在项目的属性面板中选择【链接器】【输入】附加依赖项
)/) +)/), +0' +
数学概念
坐标系
笛卡尔坐标系:
) 每个 笛卡尔坐标系都有一个特殊的点,称作原点,它是坐标轴的中心,即(!,!)
点
) 每个 笛卡尔坐标系都有两条过原点的直线向两边无限延伸,称作轴,即 ,12 轴
Y 轴
原点 X 轴
世界坐标系
可以称为宇宙坐标系或全局坐标系
世界坐标系所关注的主要问题是初始位置和环境,如
) 摄像机的位置和方向,比如游戏场景中的摄像机位置及朝向
) 每个物体的位置和方向,比如玩家的初始位置及朝向或建筑物体的位置
/) 世界中每一点的地形情况,比如在游戏场景中的地形,可以形成山丘或河流
3) 每个物体的运动轨迹,比如 4 的运动路径
物体坐标系
所关注的主要是相对物体本身的问题,比如:周围是否有怪物?在那个方向?我要是逃跑
应该朝向那里?
摄像机坐标系
)/ 空间中的物体是否在摄像机的可视区域内
)多个物体的方位顺序,比如那个在前,那个后,是群补描绘还是部分描绘等
惯性坐标系
从物体坐标系和世界坐标系转化过程中的一个半成品,也可以说是一个中间转化结果
转化过程:
) 将物体坐标系旋转,是坐标轴平行于世界坐标系的轴,会发现此时的物体坐标系便与
惯性坐标系重合
) 将此时的物体坐标系(或得到的惯性坐标系)平移,使原点与世界坐标系远点重合,
便完成了物体坐标系向世界坐标系的转换
弧度转换角度:
1rad=180/∏
角度转换弧度
1°=(∏/180)
向量()
当一个向量尾部与坐标系的原点一致时,向量就处于标准位置,描述这个位置的坐标被称
为分量。
在三维向量中有 3 个特殊向量:
零向量,它的所有分量都是 !,!56!1!1!7
&1 轴
/ 819 轴
3 :1; 轴
计算向量模
向量的模就是一个有向线段的长度。
'()5/*'<"=>?
向量归一化
单位向量指模为 的向量,归一化向量就是指将一般向量转换为单位向量。
D3DXVec3Normalize(&v3, &v3);
数乘
可以将向量和一个标量相乘,使向量的数量大小发生变化,但不会改变该向量的方向,除
非与一个负标量相乘。
点乘
@A5BB(BBBB>BB
θ
1向量的点乘是两个向量的乘积再乘以两个向量之间夹角的余弦值
如果5!1那么向量之间的夹角等于 ! 度
如果!1那么向量之间的夹角小于 ! 度
如果C!1那么向量之间的夹角大于 ! 度
!!
叉乘
与点乘不同的是,点乘得到的是一个标量,而叉乘得到的是另一个向量
矩阵("#$)
"#$%&
"#$%
"#$%%%
单位矩阵(方阵)
当对角矩阵的对角线元素都为 ,其他元素为 ! 时,就是单位矩阵。
单位矩阵的一个重要性质:一个矩阵乘以单位矩阵,将得到原矩阵,不会改变矩阵的大小。
3DXMatrixIdentity(&mat3)''单位化矩阵
逆矩阵
只有方形的矩阵有逆矩阵,因此当我们讨论矩阵的逆时,首先得确定它是一个方形矩
阵。
一个 4A4 的矩阵 的逆矩阵表示为 "。
所有方形矩阵都有逆矩阵。
将一个矩阵和它的逆矩阵相乘的结果是一个单位矩阵 "5"5&。注意当一个
矩阵和它的逆矩阵相乘时满足交换律。
"#$%&
D3DXMatrixInverse!%&!%
转置矩阵
矩阵的转置操作是指交换矩阵的行和列
I
3
=
[
1 0 0
0 1 0
0 0 1
]
[
a b c
d e f
g h i
]
T
=
[
a d g
b e h
c f i
]
两点重要说明:
、对于任意矩阵 M,当这个矩阵转置,再进行一次转置,则所
得矩阵为原矩阵,即"
D
D
5。
、对于任意对角矩阵 D 来说,
D
5。
D3DXMatrixTranspose(&mat3, &mat3);
标量与矩阵的乘法
设矩阵 和标量 : 相乘,实际上就是标量 : 与矩阵中各个分量相乘,结果得到一个和 维
数一样的矩阵。一般写法是标量写在矩阵的左边,不用写乘号,如:
基本图形的绘制
图元
点列表 : /DEF&4D*&D
线段列表/DE*&4G*&D
线段条带/DE*&4GDH&
三角形列表/DEDHI*G*&D
三角形条带/DEDHI*GDH&
三角形扇/DEDHI*G#4
图元 标识符 含义
顶点结合
/DEF&4D
一组点的集合
线段集合
/DE*&4G*&D
一组线段的集合
线段 $
/DE*&4GDH&
以不间断的点表示一组线段
三角形结合
/DEDHI*G*&D
一组三角形的集合
三角形 $
/DEDHI*GD&
以不间断的点表示一组三角形
三角形 '
/DEDHI*G#4
表示成扇形的一组三角形
值 含义
D3DFVF_DIFFUSE
顶点数据中包含漫反射颜色值
D3DFVF_NORMAL
顶点数据中包含法线向量,不能和
D3DFVF_XYZRHW
同时使
用
D3DFVF_PSIZE
顶点信息指明绘制点的大小
D3DFVF_SPECULAR
顶点数据中包含镜面反射颜色值
kM=k
[
m
11
m
12
m
13
m
21
m
22
m
23
m
31
m
32
m
33
]
=
[
km
11
km
12
km
13
km
21
km
22
km
23
km
31
km
32
km
33
]
D3DFVF_XYZ
顶 点 数 据 中 包 含 未 经 过 坐 标 变 换 的 顶 点 坐 标 , 不 能 与
D3DFVF_XYZRHW
同时使用
D3DFVF_XYZRHW
顶 点 数 据 中 包 含 经 过 坐 标 变 换 的 顶 点 坐 标 , 不 能 与
D3DFVF_XYZ
和
D3DFVF_NORMAL
同时使用
D3DFVF_XYZB1
D3DFVF__XYZB5
顶点数据中包含用于骨骼动画的顶点和顶点对骨骼的权重信息
D3DFVF_XYZW
顶点数据中包含经过坐标变换的顶点坐标和裁剪的顶点坐标,
只可用于可编程顶点流程线
D3DFVF_TEX0~ D3DFVF_TEX8
包含
0-8
个纹理坐标,用于纹理绘制
D3DFVF_TEXCOORDSIZEN(coordIndex
)
定义一个纹理坐标数据集,
coordIndex
指示纹理维度下标识,
参看
D3DFVF_TEXCOORDSIZEN
CreateDevice()函数
>"
@4&D#)$1
/GD9G>D2$1
JK4<(K')01
KFHL<>1
/HGG4DE#H#GDGHA$'M'1
&/>AA$$H(')>&'N
?
参数 #)$ 指定显卡序号,表示使用那块显卡创建 / 设备对象。该参数通常
设置为 /##DGHEG#@*D
参数 >D2$ 指定 / 设备类型
参数 <(K')0 指定当 / 程序从前台变换到后台时的提示窗口。当 /
运行于全屏模式时,该窗口必须是顶级窗口,当 / 运行于窗口模式时,该成员
可以设置为 4@**1这时该窗口就是 /HGG4DE#H#GDGH 结构中 <>K')0 成
员指定的窗口
参数 L<>"设备行为标志指定 / 设备进行 / 运算的工作方式
L<> 值 说明
/HG#DGE@EHGGHG
激活双精度浮点运算或浮点运算一场检
测,设置该项会降低系统性能
/HG#DGEJ#HK#HGE()**$
+,
由 / 硬件进行顶点运算
/HG#DGE&GEGHDGHFG&4I
由 / 硬件和软件进行顶点运算
/HG#DGE@*D&DJHG#G
支持多线程绘制,设置该项会降低系统
性能
/HG#DGE@HGG&G
禁 用 / 的 IA" 函 数 , 禁 止
/ 使用虚拟设备模拟顶点运算
#(*-#()**$
+,
由 / 软件进行顶点运算
剩余63页未读,继续阅读
资源评论
markliu1986216
- 粉丝: 2
- 资源: 20
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功