Registriert: Sa Jul 22, 2006 00:43 Beiträge: 30 Wohnort: Borland
Hallo DGL Community,
da es jetzt schon wieder eine ganze Weile her ist als ich das letzte mal an meinem ersten DGL-Versuch saß blicke ich leider nicht mehr in meinem Code durch da ich eh noch nie komplett in der Materie war
Naja auf jeden Fall habe ich mich dazu entschlossen das Ganze wieder aufzugreifen doch leider weiß ich nicht wo ich anfangen soll nach Fehlern zu suchen. Ich weiß nicht ob sowas hier gerne gesehen wird aber ich dachte, vielleicht kann mal jemand kurz über den Code huschen und gravierende Sachen aufzeigen. Falls das zu allgemein ist bitte sagen, denn ich denke so finde ich eher wieder rein als alle Tutorials nochmal komplett durchzugehen.
Ich wäre also sehr dankbar wenn man mir kurze Tipps geben könnte woran es liegen könnte, dass das Objekt nicht gezeichnet wird.
Zur Zeit gibt es nur ein Objekt namens "venator" der Klasse TShip.
Registriert: Sa Aug 18, 2007 18:47 Beiträge: 694 Wohnort: Köln
Programmiersprache: Java
Was funktioniert denn nicht?
Als erstes würde ich mal etwas aufräumen:
Die Einstellungen für den Viewport und Orthogonalen Modus würde ich in die Init Procedure packen. Braucht man ja nur einmal aufrufen in deinem Fall.
Das Handling der Tasten würde ich auch woanders hin packen. Der Übersicht wegen.
Dann würde ich noch ein glPushMatrix und glPopMatrix am Anfang und Ende der Draw Procedure einfügen. Wenn du nämlich ein 2. Schiff zeichnen würdest ohne die Modellviewmatrix zurückzusetzen würde das 2. Schiff relativ vom 1. positioniert.
Sprich:
Code:
SetupGL
Init
IdleHandler
InputHandler
CalcMovement
RenderScene
Ship.Draw
(SwapBuffers)
Aber nach schnellem Überfliegen fällt mir nichts ungewöhnliches auf.
gruß
damadmax
_________________ Es werde Licht. glEnable(GL_LIGHTING); Und es ward Licht.
Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"
Registriert: Sa Jul 22, 2006 00:43 Beiträge: 30 Wohnort: Borland
Vielen Dank für deine Antwort. Werde deine Tipps morgen (bzw heute) früh dann umsetzen.
Das eigentliche Problem ist, dass das Objekt einfach nicht mehr angezeigt wird. Meine letzte kompilierte Version die noch aus dem letzten Jahr stammt und seitdem ich ein paar Sachen am Code geändert hatte, hat noch das Objekt angezeigt. Da es allerdings so lange her ist kann ich nicht mehr nachvollziehen was ich geändert habe.
Zwei Sachen musste ich heute dann auf jeden Fall ändern, z.B. zwei Prozedurnamen
RotateVector -> VectorRotate
glRotate zu glRotatef (aber hierbei weiß ich nicht genau ob ich den Teil nicht einfach nur inklusive Fehler übernommen hatte)
und eine neue Version der geometry.pas musste ich benutzen, da die alte einen Fehler ausgespuckt hat nach dem angeblich eine Datei namens "jedi-sdl.inc" gefehlt hatte. Benutze nun die Version 2.4 (vorher 1.1)
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Überprüf mal deine Zeichenreihenfolge :
Du löschst deine Szene (glClear), tauschst die Puffer, machst die gelöschte Szene sichtbar und renderst dann dein Raumschiff, dann fängts wieder von vorne an, da kann man logischerweise nix sehen.
Du hast ja sogar vor dem SwapBuffers noch den Kommentar stehen dass auf die Zeichenroutine verwiesen werden muss.
Registriert: Sa Jul 22, 2006 00:43 Beiträge: 30 Wohnort: Borland
Irgendwas scheint immer noch nicht zu stimmen, obwohl ich jetzt eigentlich die richtige Reihenfolge drin haben sollte. Den Input passe ich später an, ist ja zur Lösung des Problems denke ich zur ZEit nicht relevant ... wegeditiert
Registriert: Sa Jul 22, 2006 00:43 Beiträge: 30 Wohnort: Borland
Ok jetzt habe ich nochmal testeweise gluPrespective eingebaut. Jetzt gibts zwar eine Ausgabe, allerdings nicht mit dem schönen flachen Effekt wie ich ihn eben mit ortho haben möchte. Die Bewegung ist soweit auch in Ordnung, allerdings ist das Objekt überdimensioniert und nicht im richtigen Größenverhältnis, wahrscheinlich wegengluPerspective.
Wie bekomme ich das nun so hin wie es eben dank glOrtho sein sollte? Und noch ne Vertändnisfrage nebebher, wo genau zeigt eigentlich mein Positionsvektor hin, in den Mittelpunkt des Schiffs? Steh gerade aufm Schlauch.
€: Ich sehe gerade, dass ich ja das gluPerspective in die OnResize Methode gepackt habe, wieso funktioniert es nur da? Wenn ich es z.B. im Init anwende sehe ich wieder nichts obwohl ich das doch auf die Projektionsmatrix anwende
Mitglieder in diesem Forum: Bing [Bot] und 4 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.