die einfachste möglichkeit um einen körper nach seiner ausrichtung zu bewegen: (man macht vor der translierung die rotation einfach LOL) das spart so etwa 30 code zeilen!
....
mat4.identity(worldMAT[obj]);
if((rot[0] != 0)||(rot[1] != 0)||(rot[2] != 0)){
mat4.rotate(worldMAT[obj], degToRad(rot[0]), [1, 0, 0]);
mat4.rotate(worldMAT[obj], degToRad(rot[1]), [0, 1, 0]);
mat4.rotate(worldMAT[obj], degToRad(rot[2]), [0, 0, 1]);
mat4.rotate(worldMAT[obj], degToRad(rot[1]), [0, 1, 0]);
mat4.rotate(worldMAT[obj], degToRad(rot[2]), [0, 0, 1]);
}
mat4.translate(worldMAT[obj], [pos[0],pos[1],pos[2]]);
....
wieso ich die rotation ausgeklammert hab? ach, ich muszte in erfahrung bringen, dass die matrix rotation sehr viel performance frisst! ;-) eigentlich ist die idee, nur bei veränderung der rotation eine matrix rotation zu machen. allerdings hab ich das nach nicht gemacht und temporär auf null fixiert.
Keine Kommentare:
Kommentar veröffentlichen