在CSDN上看到了一個(gè)很強(qiáng)大的程序:用GDI實(shí)現(xiàn)3D,可以變換視角的查看.x文件。
不過想想看,好像實(shí)現(xiàn)起來也并不難。。。
和所有基礎(chǔ)的3D程序一樣,先把視椎變換為單位立方體,

變換矩陣為:

當(dāng)然,DirectX和OpenGL里都有現(xiàn)成的函數(shù):
//OpenGL
void?gluPerspective(GLdouble?fovy,
????GLdouble?aspect,
????GLdouble?zNear,
????GLdouble?zFar);
//DirectX
D3DXMatrixPerspectiveFovLH(?D3DXMATRIX?*pOut,
????FLOAT?fovY,
????FLOAT?Aspect,
????FLOAT?zn,
????FLOAT?zf
);?
單位立方體中的點(diǎn)正交投影得到的(x,y,z)*視口變換矩陣 得到 (x',y',z')。
(x',y')對(duì)應(yīng)屏幕點(diǎn),z'為其深度,用于點(diǎn)的競(jìng)爭(zhēng)。
把每個(gè)三角面匹配紋理用GDI基本函數(shù)畫出來就可以了。
CSDN的那個(gè)程序
