ich habe schon einige Erfahrungen mit Opengl gemacht (u. A. in C++). Die Api ist ja aber im Umfang her identisch. Daher hätte ich einige Fragen und ich wäre euch Dankbar wenn Ihr mir diese beantworten könntet.
Ich hab also ein ziemlich großes Modell das ich in einzelne Sektoren zerlegt habe. Jeder dieser Sektoren hat eine Visible Liste. Dort wird beschrieben das wenn man sich auf SektorX befindet, welche anderen paralell zu sehen sein müssen. Nur jetzt hab ich ein paar Probleme.
Ich hab das Problem, dass ich nicht weiß wie ich sehen kann auf welchem Sektor ich mich gerade befinde. (Jeder Sektor besitzt ein BoundingVolume)
Brauch ich zum Anzeigen Display Listen? Falls ja, wie gehe ich da am besten ran?
Ich wäre euch Dankbar wenn Ihr mir dabei kurz etwas helfen könnt. Euer Wiki ist das beste das ich zum Thema OpenGL kenne. Es hat auch schon viel geholfen. Jedoch komme ich hier jetzt nicht weiter.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Das Lob für's Wiki geht uns natürlich runter wie Öl. Falls dir fürs Wiki noch was einfällt, kannst du es gern eintragen.
Zu deiner ersten Frage: Speicherst du nirgendwo deine aktuelle Position? Falls ja, dass läuft das auf einen ganz simplen "Point in Box" Test hinaus. Falls Nein: Wieso nicht?
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Vielen Dank für die Antwort. Nein ich speichere bislang nicht die aktuelle Position. Wo finde ich diese denn? Denn wenn ich mich ja bewege dann verschiebe ich ja das ganze Koordinatensystem mehr oder weniger immer mit.
ich hätte noch eine andere frage zum thema user interaktion. ist es denn schwer 2D Fensterkoordinaten in 3D koordinaten umzuwandeln? Ich frage das nur zusätzlich. Denn ich würde gerne es in Zukunft den user zu erlauben naja polygone auszuwählen.
Also kurz und knapp. Wie bekomme ich meine aktuelle Situation und wandle 2D (x, y) Fensterkoordinaten in die 3d welt um um zu sehen was der user auswählt.
Bewegung schreibt man üblicherweise unabhängig von OpenGL und übergibt dass nur die Endergebnisse an OpenGL. Aber es gibt afaik auch eine Funktion um die aktuelle Modelview matrix von OpenGL zu holen.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Wie führst du denn die Transformationen durch? Sicherlich mit glTranslatef, oder?
Und machst du zu begin vom Frame einmal glLoadIdentity? Wenn ja, musst du deine Position doch kennen, schließlich übergibst du sie an glTranslatef. Wenn nein, dann solltest du deine Position irgendwo anlegen und synchron mit der Bewegung verändern. Schließlich geht jede Änderung irgendwo durch deinen Code, z.B. durch Pfeiltasten oder so und da änderst du dann die Position in deinen Variablen mit.
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 network • my 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
Völlig richtig. Ihr habt ja beide recht. Ich nutze natürlich die Initialisierung. Und wenn ich das modell via den Tasten der Tastatur drehe, dann wird natürlich eine Variable erhöht und somit kann ich das modell drehen.
ich drehe mein Modell mit Rotatef. ich hab bislang nur eine einfache drehung ermöglicht. das sieht dann so aus:
Code:
glRotatef (theta, 0.0f, 0.5f, 0.0f);
es tut mir leid das ich das vergessen habe zu erwähnen.
ich hab noch keine funktion wo ich ich direkt selbst auf das modell zubewegen kann, da ich noch clipping probleme habe. ich setze dafür
nur gibt es eine sache die mir noch nicht ganz logisch vorkommt. und zwar geht es um gluPerspective. ich hab ja dort bereiche angegeben 0.1 und 100.0. jedoch gibts trotzdem clipping auch wenn ich die zahlen vergrößere. muss ich um das clipping zu vermeiden jetzt noch glfrustum mit einbauen? mir ist dieser bug gerade erst aufgefallen.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Hast du probleme mit dem Near (Dinge verschwinden direkt vor der "Kamera") oder mit dem Farclipping (Dinge verschwinden weit hinten)? Beim Farclipping würde es mich wundern, wenn hohe Werte nicht helfen (wobei von denen abzuraten ist, weil sie die Genauigkeit im Tiefenpuffer einschränken). Beim Nearclipping musst du kleinere Werte verwenden. Ganz los wirst du es nie (und Werte <= 0 funktionieren nicht).
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 network • my 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
Mitglieder in diesem Forum: 0 Mitglieder und 9 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.