i have a tripod of 3 vectors, all 90deg to eachother.
x1,x2,x3 ---> viewvector
y1,y2,y3 ---> crossproduct1 of viewv.
z1,z2,z3 ---> crossproduct2 of viewv.
how can i set an objects rotation to this new rotation matrix?
i have a halfbaked solution with rotateXYZ that computes angles, but i guess it should be possible to override the rotation matrix somehow, wich would be much nicer.
thanks for help in advance.
-
Set rotation by 3x3 matrix?
-
so i found out that its possible to set a modelview matrix with glLoadMarix.
and that it looks like this
http://wiki.delphigl.com/index.php/Matrix#Aufbau_einer_OpenGL-Matrix| 0 4 8 12 |
| 1 5 9 13 |
| 2 6 10 14 |
| 3 7 11 15 |
+- -+where (i guess...)
0 = front X
1 = front Y
2 = front Z
3 = 0
4 = right X
5 = right Y
6 = right Z
7 = 0
8 = up X
9 = up Y
10 = up Z
11 = 0
12 = pos X
13 = pos Y
14 = pos Z
15 = 1but i still dont have any idea how to patch it...
i hope someone can help me -
GEMglLoadMatrix seems to be not existing...
somebody from OGL forum sent me this codevar Matrix: array[0..3] of array[0..3] of single;
begin
glPushMatrix;
Matrix:= [ [ Right.x, Right.y, Right.z, 0],
[ Up.x, Up.y, Up.z, 0],
[ Front.x, Front.y, Front.z, 0],
[ 0, 0, 0, 1] ];
InvertMatrix(Matrix);
glMultMatrixf(@Matrix);//Billboards zeichnen;
glPopMatrix;
end;GEMglPushMatrix exists, but i dont get a second inlet to feed it the matrix
and i have no idea how to do it.
Any ideas? -
its so simple, sometimes...