Liebes Forum,
seit einigen Wochen arbeite ich an einer 3D Engine und sie funktioniert schon echt ziemlich gut.
Ich arbeite mit LWJGL und meine gl_Position berrechne ich: ProjMatrix * ViewMatrix * TransMatrix * Vec4fPosition
Theoretisch funktioniert alles jedoch will ich jetzt ein Flugzeug einbauen, welches ich mit meiner jetztigen TransformationMatrix nicht berrechnen kann.
Es soll sich rollen können (also entlang der EIGENEN Z Achse sich drehen) .
Es soll sich nach oben und unten drehen können (also entlang der eigenen X Achse) .
und sich ebenfalls um die eigene Y Achse drehen.
jedoch funktioniert dies nicht so wie ich es gern hätte.
Die meisten kennen diese Art von Steuerung bestimmt aus irgendwelchen Spielen o.ä.
und diese muss ich dementsprechend jetzt kopieren.
Ich habe bereits Wikipedia und sämtliche andere Seiten nach einer brauchbaren TransformationMatrix durchsucht, jedoch ohne Erfolg.
So sieht meine jetztige Transformationmatrix aus, ich habe bereits versucht die reihenfolge der Rotationen zu verändern, sogar die Achse um die er dreht zu ändern, jedoch ohne Erfolg.
Hat jemand eine Idee wie ich mein Problem lösen kann ?
schonmal Danke im vorraus !
seit einigen Wochen arbeite ich an einer 3D Engine und sie funktioniert schon echt ziemlich gut.
Ich arbeite mit LWJGL und meine gl_Position berrechne ich: ProjMatrix * ViewMatrix * TransMatrix * Vec4fPosition
Theoretisch funktioniert alles jedoch will ich jetzt ein Flugzeug einbauen, welches ich mit meiner jetztigen TransformationMatrix nicht berrechnen kann.
Es soll sich rollen können (also entlang der EIGENEN Z Achse sich drehen) .
Es soll sich nach oben und unten drehen können (also entlang der eigenen X Achse) .
und sich ebenfalls um die eigene Y Achse drehen.
jedoch funktioniert dies nicht so wie ich es gern hätte.
Die meisten kennen diese Art von Steuerung bestimmt aus irgendwelchen Spielen o.ä.
und diese muss ich dementsprechend jetzt kopieren.
Ich habe bereits Wikipedia und sämtliche andere Seiten nach einer brauchbaren TransformationMatrix durchsucht, jedoch ohne Erfolg.
Code:
public Matrix4f createTransformationMatrix() {
Matrix4f m = new Matrix4f();
m.setIdentity();
Matrix4f.translate(this.position, m, m);
Matrix4f.rotate((float)Math.toRadians((this.rotation.x)), new Vector3f(1,0,0), m, m);
Matrix4f.rotate((float)Math.toRadians((this.rotation.y)), new Vector3f(0,1,0), m, m);
Matrix4f.rotate((float)Math.toRadians((this.rotation.z)), new Vector3f(0,0,1), m, m);
Matrix4f.scale(this.scalation, m, m);
return m;
}
So sieht meine jetztige Transformationmatrix aus, ich habe bereits versucht die reihenfolge der Rotationen zu verändern, sogar die Achse um die er dreht zu ändern, jedoch ohne Erfolg.
Hat jemand eine Idee wie ich mein Problem lösen kann ?
schonmal Danke im vorraus !