在CSDN上看到了一个很强大的程序:用GDI实现3D,可以变换视角的查看.x文件。
不过想想看,好像实现起来也并不难。。。
和所有基础的3D程序一样,先把视椎变换为单位立方体,
变换矩阵为:
当然,DirectX和OpenGL里都有现成的函数:
//OpenGL
void gluPerspective(GLdouble fovy,
GLdouble aspect,
GLdouble zNear,
GLdouble zFar);
//DirectX
D3DXMatrixPerspectiveFovLH( D3DXMATRIX *pOut,
FLOAT fovY,
FLOAT Aspect,
FLOAT zn,
FLOAT zf
);
单位立方体中的点正交投影得到的(x,y,z)*视口变换矩阵 得到 (x',y',z')。
(x',y')对应屏幕点,z'为其深度,用于点的竞争。
把每个三角面匹配纹理用GDI基本函数画出来就可以了。
CSDN的那个程序