1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| Vector3 LMP3D_TransformPerspectiveFPU(float* matrix,Vector3 vec)
{
register float x,y,z,w;
x = vec.x;
y = vec.y;
z = vec.z;
vec.x = (matrix[0+0]*x) + (matrix[4+0]*y) + (matrix[8+0]*z) + (matrix[12+0]);
vec.y = (matrix[0+1]*x) + (matrix[4+1]*y) + (matrix[8+1]*z) + (matrix[12+1]);
vec.z = (matrix[0+2]*x) + (matrix[4+2]*y) + (matrix[8+2]*z) + (matrix[12+2]);
w = (matrix[0+3]*x) + (matrix[4+3]*y) + (matrix[8+3]*z) + (matrix[12+3]);
if(w != 1.0f)
{
w = 1.0f/w;
vec.x *= w;
vec.y *= w;
vec.z *= w;
}
return vec;
} |
Partager