真的很抱歉,我也不太清楚,我一直动在用的是托管下的DirectX(并且学的很烂) 非托管的我不了解 所以也不敢乱说,不过你应该先要了解 在3D世界里的几个常用的变换,一般都是用个4元素来乘上一个 4*4的矩阵达到单个变换或者混合变换的效果.
4元素分别为X,Y,Z坐标加上一个用来控制位移的值,如果是点那这个值应该是1(这样点才可一位移),如果是向量那这个值就应该是0(不让向量产生偏移)
例如:点(x,y,z,1)如果让它位移的话就应该乘上矩阵|1,0,0,0|
|0,1,0,0|
|0,0,1,0|
|p,q,r,1|
就可以得到(x+p,y+q,z+r,1)经过平移的点
在例如:点(x,y,z,1)如果让它缩放的话就应该乘上矩阵|p,0,0,0|
|0,q,0,0|
|0,0,r,0|
|0,0,0,1|
也就是得到了点(x*p,y*q,z*r,1)的新点!
值得一说的是如果你学过高等数学应该知道的,矩阵的乘法是分先后的,混合变换如果顺序不同产生的效果是不同的这是和矩阵的乘积是有关的!
在这里我知识说了点基础的,如果不明白可以看看高等数学,在3D游戏编程中矩阵变换是很重要的(包括矩阵求逆)
还有很多数学上的如平面,向量的一些基本运算,在则到了一些经典的算法和公式如"噪波","映射","光的辐射模拟算法"等(其实我都不懂这些算法的!~ -_-!)
哎!~最后提醒你 VB 的教程真的很少!~ |