|
|
static void rot_trans_pers(vector3 *in, vector2 *out)
{
matrix4 wmat, pmat;
Vector4 tmp1, tmp2;
//pmat是projection矩阵,wmat是world矩阵
tmp1.x=wmat.x.x*in->x+wmat.y.x*in->y+wmat.z.x*in->z+wmat.w.x;
tmp1.y=wmat.x.y*in->x+wmat.y.y*in->y+wmat.z.y*in->z+wmat.w.y;
tmp1.z=wmat.x.z*in->x+wmat.y.z*in->y+wmat.z.z*in->z+wmat.w.z;
tmp1.w=wmat.x.w*in->x+wmat.y.w*in->y+wmat.z.w*in->z+wmat.w.z;
tmp2.x=pmat.x.x*tmp1.x+pmat.y.x*tmp1.y+pmat.z.x*tmp1.z;
tmp2.y=pmat.x.y*tmp1.x+pmat.y.y*tmp1.y+pmat.z.y*tmp1.z;
tmp2.z=pmat.x.z*tmp1.x+pmat.y.z*tmp1.y+pmat.z.z*tmp1.z;
tmp2.w=pmat.x.w*tmp1.x+pmat.y.w*tmp1.y+pmat.z.w*tmp1.z;
out->x = (int)((SCR_WIDTH/2)*tmp2.x/tmp2.w+SCR_WIDTH/2);
out->y = (int)((-SCR_HEIGHT/2)*tmp2.y/tmp2.w+SCR_HEIGHT/2);
}
代码如上,请问谁知道是什么意思?谢~ |
|