Registriert: Di Jul 26, 2005 21:13 Beiträge: 13 Wohnort: Dresden
Hallo Leute,
Ich hab mal wieder ein Problem. Ich bastel ja an dem 3DS-Loader von Mike Lischke rum und es funktioniert alles auch einigermaßen gut, aber jetzt hab ich versucht, eigene Matrizen einzubinden.
Sobald ich glMultMatrix aufrufe, verschwindet meine gesamte Szene, selbst wenn ich nur versuche, die Identitätsmatrix zu multiplizieren.
Kann das daran liegen, dass ich die OpenGL.pas verwende oder ist es was anderes? Leider kann ich die dglOpenGl.pas nicht benutzen, da streikt der Loader.
Auf jeden Fall soltest du dafür sorgen, dass alle deine Units, die OpenGL verwenden, den gleichen Header benutzen. Sonst treten bevorzugt merkwürdige Exceptions auf. Sowas frustriert ungemein
Ob das bei dir jetzt das Problem ist, glaube ich zwar nicht, aber schaden kann es nicht, wenn du überalle die dglopengl.pas verwendest
_________________ "Für kein Tier wird so viel gearbeitet wie für die Katz'."
Registriert: Mi Jul 17, 2002 12:07 Beiträge: 976 Wohnort: Tübingen
Ein Problem, das ich erst vor kurzem mit glMultMatrix hatte, war, dass ich statt mit Single-Werten, mit denen diese Funktion standardweise arbeitet, Extended-Variablen verwendet hab. Da aber glMultMatrix mit Zeigern arbeitet, kann das zu Problemen führen, zB, dass dann Objekte ins unendlich verschoben werden!
_________________ "Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0." - Hal Faber Meine Homepage: http://laboda.delphigl.com
Registriert: Mi Jul 17, 2002 12:07 Beiträge: 976 Wohnort: Tübingen
Bitte. Bitte. Bitte
Hier ne Erklärung von Sacha Willems, die er mir mal gegeben hat, mit Double statt Extended kommts aufs gleiche raus:
Zitat:
Warum? Einfach : Single hat 4 Byte, Extended 10. Wenn du also nen Zeiger auf eine 4x4-Extendedmatrix übergibst nimmt Newton (in der Single-Version) für jedes Matrizenelement 4 Bytes (=Größe von Single=). Bei einer Extendedmatrix belegt aber z.B. der erste Wert bereits die Bytes 0-9, also nimmt Newton (Zeiger auf eine Matrix, also kann Newton nicht wissen um welchen Datentyp es sich handelt) aus deinem ersten Extendedelement der Matrix 2 "1/2" Werte, Byte 0-3 Single1, 4-7 Single2, 8-10 Single3 und geht dann in den nächsten Extendedwert.
Man sollte sich also durchaus mal mit Datentypen auseinandersetzen, Extended ist nämlich wie gesagt für GL/Newton eine recht sinnlose Sache da man für jeden Wert 6 Bytes wegwirft. Von Newton gibts für größere Genauigkeit übrigens auch eine Double-Version.
_________________ "Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0." - Hal Faber Meine Homepage: http://laboda.delphigl.com
Mitglieder in diesem Forum: 0 Mitglieder und 11 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.