Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 12:30

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Sektordarstellung
BeitragVerfasst: Mi Okt 08, 2008 17:40 
Offline
DGL Member

Registriert: Mi Okt 08, 2008 17:16
Beiträge: 3
Hallo,

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.

Vielen Dank im voraus für die Hilfe

Gruß

Oxygene


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Okt 08, 2008 18:47 
Offline
Guitar Hero
Benutzeravatar

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. 8)

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Okt 09, 2008 16:59 
Offline
DGL Member

Registriert: Mi Okt 08, 2008 17:16
Beiträge: 3
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.

danke für die hilfe


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Okt 09, 2008 17:02 
Offline
DGL Member

Registriert: Di Jun 06, 2006 09:59
Beiträge: 474
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.

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Okt 09, 2008 17:05 
Offline
DGL Member
Benutzeravatar

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 networkmy 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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Okt 09, 2008 17:31 
Offline
DGL Member

Registriert: Mi Okt 08, 2008 17:16
Beiträge: 3
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:
  1. 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

Code:
  1.     glShadeModel(GL_SMOOTH);                                                    //Shadermodell wählen
  2.     glClearColor(0.0f, 0.0f, 0.0f, 0.5f);                                       //Farbraum löschen
  3.     glClearDepth(1.0f);
  4.     glEnable(GL_DEPTH_TEST);                                                    //Tiefentest ausführen
  5.     glDepthFunc(GL_LEQUAL);            
  6.     glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);                          //Perspektive setzen
  7.     gluPerspective(45.0f,(breite /hoehe),0.1f,100.0f);
  8.  


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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Okt 09, 2008 18:07 
Offline
DGL Member
Benutzeravatar

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 networkmy 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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 10, 2008 12:35 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Du musst dann einfach verhindern, dass man weiter an die Objekte ran kommt. Da geht dann quasi die Kollisionserkennung los.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]