一、坐标空间
1.1 局部坐标系
用于描述物体自身属性的独立坐标系,它相对于物体中心位置构成一个模型空间。在该模型空间,描述了物体的方向和构成物体的元素相对于物体中心的位置。
1.2 世界坐标系
用于建立一个描述其他坐标系所需要的参考框架,以便指定物体在该坐标系中的位置、方向及大小。其描述的空间称为世界空间,包含了所有的物体模型,并且这些物体模型被组合到一起而形成一个场景。
1.3 观察坐标系
用于指定观察三维空间中的物体的方向和位置,其原点指定了摄像机的位置。它定义了摄像机的屏幕可视区域,可产生观察物体“近大远小”的效果。
二、数学对象
2.1 向量
D3DXVECTOR3是Direct3D中的向量,当然也有D3DXVECTOR2和D3DXVECTOR4两种形式,并且重载了加减乘除、赋值等操作与求模、规格化、点积、叉积等运算。
2.2 矩阵
D3DMATRIX是Direct3D中的矩阵,表示4*4的矩阵,其许多操作可参见SDK帮助。
三、几何变换
3.1 世界变换
包括平移、旋转、缩放变换,相关函数有D3DXMatrixTranslation、D3DXMatrixRotation、D3DXMatrixSaling等,应用到设备采用SetTransform(D3DTS_WORLD, &matWorld)。
3.2 观察变换
指定虚拟摄像机的位置、观察点位置及正方向,相关函数有D3DXMatrixLookAtLH等,应用到设备采用SetTransform(D3DTS_VIEW,&matView)。
3.3 投影变换
将位于视截体内的物体模型映射到投影窗口中,相关函数有D3DXMatrixPerspectiFovLH等,应用到设备采用SetTransform(D3DTS_PROJECTION,&matProj)。
3.4 视口变换
将投影窗口中的图像转换到显示屏幕的程序窗口中,视口由D3DVIEWPORT9描述,通过调用SetViewport函数就可以自动完成视口变换。