Registriert: Di Apr 29, 2008 18:56 Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey,
ich hab ein seltsames Problem bei dem ich nicht recht weiter weiß. Ich denke ich hab irgenwo einen Denkfehler, aber ich find einfach keinen Ansatzpunkt. Ich habe mehrere Objekte, zu den Objekten Speicher ich ein Matrix in folgender Form:
Code:
TgluVector4f = array[0..3] of glFloat;
TgluMatrix4f = array[0..3] of TgluVector4f;
Wenn ich der Matrix jetzt folgende Werte gebe:
Code:
1.0 0.0 0.0 0.0
0.0 1.0 0.0 0.0
0.0 0.0 1.0 0.5
0.0 0.0 0.0 1.0
dann erwartet man doch, das sich das Objekt um 0.5 Einheiten in Richtung der pos. Z-Achse im aktuellen Koordinatensystem verschiebt, oder? Mein Objekt wird aber immer doppelt so weit verschoben. So ruf ich das ganze zum Zeichnen auf:
Das glMultMatrixf soll sich auch auf RenderNode(Child) auswirken, ja? Würde die doppelte Verschiebung erklären, einmal vom Eltern-Objekt und einmal vom Objekt selbst.
Es ist häufig einen Versuch Wert einfach mal die Matrix zu transponieren, also:
Code:
1.0 0.0 0.0 0.0
0.0 1.0 0.0 0.0
0.0 0.0 1.0 0.0
0.0 0.0 0.5 1.0
Ggf. werden nämlich bei der Übergabe an OpenGL Zeilen und Spalten vertauscht.
Registriert: Do Mär 05, 2009 20:17 Beiträge: 284 Wohnort: Kaiserslautern
ich hatte mal was ähnliches, da war mir bei jedem zweiten rendern ein loadidentity abhanden gekommen - aber sowas dämliches passiert bestimmt nur mir mit meinem stümper-coding
Registriert: Di Apr 29, 2008 18:56 Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey,
hab den Fehler. Ich Idiot hab einma in der RenderNode-Methode (siehe oben) multipliziert und dann gleich nochma in der Render-Methode des Objekts -.- Manchmal sieht man echt den Walt vor lauter Bäumen nicht^^
Mitglieder in diesem Forum: 0 Mitglieder und 3 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.