Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Di Jul 15, 2025 23:12

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Matrix nach Animation speichern
BeitragVerfasst: Mi Mai 14, 2008 12:34 
Offline
DGL Member

Registriert: So Mär 02, 2008 18:47
Beiträge: 30
Hallo zusammen,

ich muss schon wieder eine blöde Frage stellen. Ich will nach einer Animation den neuen Zustand übernehmen.
Wenn ein Objekt verschoben wird, soll es dort auch bleiben und nicht wieder an die alte Stelle zurückkehren.


Ich habe keine Ahnung wie ich das anstellen soll.


Hier meine Überlegungen zu diesem Punkt:


1. ) glPushMatrix(); //Zustand sichern
glPushmatrix ohne PopMatrix() setzen ?

2.) irgendwie an die neuen Koordinaten gelangen und

glGetDoublev (GL_MODELVIEW_MATRIX, meine neue matrix ); //Veränderte Matrix wieder ins Array schreiben
glLoadMatrixd (alte matrix laden); //alte Matrix in OpenGL laden


Ist bestimmt einfach und ich hab ein Brett vor dem Kopf... :roll:
Ich komme aber nicht drauf...

Hat jemand den passenden befehl oder einen schönen Link ?

Vielen Dank .


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mai 14, 2008 15:31 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Warum speicherst du dir nicht einfach die aktuelle Objektposition als Array of Float oder als Record oder wieauchimmer intern in deiner Anwendung und wendest die vor dem Rendern des Objektes an?

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mai 14, 2008 19:34 
Offline
DGL Member

Registriert: So Mär 02, 2008 18:47
Beiträge: 30
Ja genau. Aber wie ermittle ich denn genau die aktuelle Position.


Code:
  1.  
  2.  
  3.  
  4. gl.glPushMatrix();
  5. gl.glTranslatef( 2.0f, 4.0f,-15.0f);  // Hier wird gezeignet.
  6. if ( w <= 90){
  7. gl.glRotated(w, 0.0f, 0.0f, -1.0f);   // Rotation um negative Z-Achse
  8. gl.glTranslatef( (float)0.5*x, (float)0.5*y,(float)0.5*z); // Verschiebung der unteren rechten Kante auf Achse
  9. room.drawCube(x, y, z);
  10.  
  11. //Winkel reduzieren
  12. w++;
  13. }
  14.  
  15.  


Da kippt ein Würfel. Hiernach verschwindet er. Wie bekomme ich nun die aktuellen Koordinaten programmatisch ?

Und ist es richtig, dass ich mit diesem Befehl die neu errechnete Matrix lade:

glGetDoublev (GL_MODELVIEW_MATRIX, array[16]);


Danke


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mai 14, 2008 19:48 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Um eine Matrix zu sichern, machste folgendes:
Code:
  1. var
  2.   Matrix: array [0..15] of Double; // Array für die Matrix


Code:
  1. glGetDoublev(GL_MODELVIEW_MATRIX, @Matrix[0]);


Das @ und der Index sind wichtig, weil du OpenGL einen Pointer auf den ersten Double eines Speicherbereiches geben musst, in dem die Matrix gespeichert werden soll. Das erste Element deines Arrays bekommst du mit [0] und mit @ erstellst du einen Pointer darauf.

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mai 14, 2008 20:29 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 17, 2005 13:19
Beiträge: 98
Wohnort: Jahnsdorf
Bei JOGL brauchst Du einen FloatBuffer (Size 16), den Du deinem GL-Interface übergibst; ansonsten geht das identisch.

_________________
Administrator of Project Omorphia
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mai 14, 2008 21:27 
Offline
DGL Member

Registriert: So Mär 02, 2008 18:47
Beiträge: 30
Nein, ich arbeite mit gl4java...
Daran komme ich auch nicht vorbei. gl4java läuft bei mir auch nicht immer rund. Mein Programm stürzt öfter mal ab...

Das haut hin :D

gl.glGetDoublev(GL_MODELVIEW_MATRIX, matrix); speichern der Matrix
Mit glLoadMatrixd(matrix) kann ich mir die Matrix laden.



Fein .. Dankeschön


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 15, 2008 10:11 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 03, 2002 15:08
Beiträge: 662
Wohnort: Hamburg
Programmiersprache: Java, C# (,PhP)
gl4java...das existiert noch? Ich würde eher auf LWJGL oder JOGL setzen. Wird gl4java überhaupt noch weiterentwickelt?

_________________
(\__/)
(='.'=)
(")_(")


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.009s | 15 Queries | GZIP : On ]