komischer fehler beim anzeigen [OpenGL]
-
hi,
ich bin ja grade am schreiben von ner engine mit opengl (zum lernen).
ich hab mir mittlerweile den milkshape3d modelloader von nehe eingebaut und will jetzt einfach nur nen zylinder anzeigen lassen.
dabei kommt das raus:
http://www.slin-online.de/screen.jpg
kann mir einer nen tipp geben woran das liegen kann?
das model wird im milkshape3d richtig angezeigt, also daran anns nicht liegen.
hier der komplette code meiner engine:
http://www.slin-online.de/Projekte/Irrenhaus.htmdas model wird in der datei model.cpp geladen und angezeigt (welche überraschung), der ganze opengl kram wird in glcontrol.cpp übernommen (eine noch größere überraschung).
würde mich über ne antwort freuen
danke vielmalsmfg
-
noch was allgemeines zu deiner Engine:
bei
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();//glTranslatef(translate.x, translate.y, translate.z);
glRotatef(rotate.x, 1.0f, 0.0f, 0.0f);
glRotatef(rotate.y, 0.0f, 1.0f, 0.0f);
glRotatef(rotate.z, 0.0f, 0.0f, 1.0f);glTranslatef(translate.x, translate.y, translate.z);
in cam.cppkannst du doch nicht alle drei hintereinander rotaten:
glRotatef(rotate.x, 1.0f, 0.0f, 0.0f);
glRotatef(rotate.y, 0.0f, 1.0f, 0.0f);
glRotatef(rotate.z, 0.0f, 0.0f, 1.0f);
weil doch dann y um x und z um y und x gedreht werden würde (Gimbal Lock)
schau mal da: http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=Quaternion_Camera_Class
-
Ich würde sagen, du hast die falschen Vertizen verbunden.
Bye, TGGC \-/
-
@hellknight:
ohne mir das teil durchgelesen zu haben:
so wie ichs zur zeit hab, funktioniert's genauso wie ich es wollte...@tggc:
dann müsste das aber am code von nehe liegen, da ich an dem nichts geändert hab..(bis auf die variablenbennenung)danke bis hierhin schonmal
-
ja aber du drehst ja auch nicht!! Versuch mal eine demo zu coden, in der du um X und um Y drehst. Dann vertausche die beiden Rotates und du wirst merken, dass sich das Objekt dann ganz anders dreht. Versuchs mal!!
-
ich hab in der test.cpp die funktion zum drehen schon eingebaut und hab die reihenfolge jetzt mal vertauscht..ich kann mir nicht helfen, aber da verändert sich nix...
aber mir is grade innen sinn gekommen:
ich depp hab nich dran gedacht, dass der code von nehe nur für version 1.3 und 1.4 gilt, ich hab 1.7...*höhö*...ich werd mich mal nach sachen für 1.7 umschauen...
thx trotzdem
-
@Black Sting:
Na dann haste wohl Pech. Der nehe kann aber auch nix...@nix da
Wer im Glashaus...Bye, TGGC \-/
-
@Black Sting:
Da verändert sich was!! garantiert! Ich hab selbst schon oft genug erfahrung damir gemacht (Gimbal Lock). Versuch mal erst um 50° in X und dann in 100° Y Zu rotaten (und zwar einen gegenstand der nicht regelmäßig ist!!) Dann Versuch ihn erst in 100° Y und dann in 50° X zu Drehen. Du wirst den Unterschied bemerken.
Ich bin gerade auch dabei eine Engine zu programmieren und habe auch dieses Problem.
Ich bin noch nicht ganz dahinter gekommen wie man das verhindern kann.
-
BTW coole Engine. Vor allem die Kommentare...
Bye, TGGC \-/
-
TGGC schrieb:
BTW coole Engine. Vor allem die Kommentare...
Besser als so C&P Kommentare, die Dich nur noch verunsichern (so wie ich sie immer mache)...
If it was hard to write, it should be hard to read...