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

Aktuelle Zeit: Mi Jul 16, 2025 12:01

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



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: BSP Rendern (RBSP Version 1)
BeitragVerfasst: Sa Mär 12, 2011 13:08 
Offline
DGL Member

Registriert: Sa Jun 05, 2010 16:15
Beiträge: 94
Hi,

ich will eine BSP - Map laden und rendern (momentan nur Polygons). Dafür hab ich auch bei Google und hier im Forum was gefunden. Leider ist der Thread schon 5 Jahre alt. Also ich habe alles so geladen wie in diesem Thread beschrieben: http://www.delphigl.com/forum/viewtopic.php?f=19&t=3876 (letzter Beitrag). Das Laden funktioniert auch fehlerfrei, aber es wird fehlerhaft gerendert. Laut dieser Seite http://w3studi.informatik.uni-stuttgart.de/~bischowg/OpenGL/OGLq3bsp.html (ganz unten) werden alle Faces mittels GL_TRIANGLE_FAN gerendert. Das mach ich auch, aber es sieht so aus, als wäre alles "durchlöchert". Mir geht es momentan nur darum, das die Polygons fehlerfrei gerendert werden.

Hier ein Bild das zeigt, was ich meine:

Dateianhang:
face.gif


Normalerweise sollte das ein Rechteck sein... Weiß jemand warum? Hat jemand damit schon Erfahrung gemacht?


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: BSP Rendern (RBSP Version 1)
BeitragVerfasst: Sa Mär 12, 2011 13:32 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Klingt nach einem Backfach-Culling Problem. Versuche mal testweise ein:
glDisable(GL_CULL_FACE);

Wenn dann alles funktioniert liegt das Problem daran, dass deine Dreiecke nicht alle gleich herum orientiert sind. Also die Vertices eines Dreiecks müssen alle entweder im Uhrzeigersinn oder gegen den Uhrzeigersinn angeordnet sein. Wie herum ist abhängig vom verwendeten Koordinatensystem und der Einstellung glFrontFace.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: BSP Rendern (RBSP Version 1)
BeitragVerfasst: Sa Mär 12, 2011 13:43 
Offline
DGL Member

Registriert: Sa Jun 05, 2010 16:15
Beiträge: 94
Backface-Culling war deaktiviert, hab ich vergessen zu erwähnen..

Code:
            glDisable(GL_CULL_FACE);
            glEnableClientState(GL_VERTEX_ARRAY);
            glVertexPointer(3, GL_FLOAT, sizeof(stVertex), &geometry3D->m_pVertices[0].m_location);

           // for(int i = 0; i < geometry3D->m_numFaces; i++) {
// nur 1 face zeichnen
                glDrawArrays(GL_TRIANGLE_FAN, geometry3D->m_pFaces[5].startVertIndex, geometry3D->m_pFaces[5].numOfVerts);
           // }

            glDisableClientState(GL_VERTEX_ARRAY);
            glEnable(GL_CULL_FACE);


Dabei werden folgende vertices gezeichnet:

0.000000 64.000000 -296.000000
0.000000 -64.000000 -0.000000
0.000000 -64.000000 -296.000000
0.000000 64.000000 -0.000000


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: BSP Rendern (RBSP Version 1)
BeitragVerfasst: Sa Mär 12, 2011 14:05 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Also wenn du dir die Vertices mal in eine Koordinatensystem malst stellst du fest, dass das so nicht funzen kann. Das lässt sich so weder mit GL_TRIANGLE_FAN noch mit GL_QUADS oder GL_TRIANGLE_STRIP rendern. Der letzte Vertex liegt auf der falschen Seite. Siehe auch die Abbildungen hier: http://wiki.delphigl.com/index.php/glBegin

=> du kriegst da irgendwie falsche Daten

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: BSP Rendern (RBSP Version 1)
BeitragVerfasst: Sa Mär 12, 2011 15:32 
Offline
DGL Member

Registriert: Sa Jun 05, 2010 16:15
Beiträge: 94
Sehr komisch.... die Daten die ich aus der Datei les sehen eigentlich richtig aus...
Hab das ganze mal mit GL_POINTS dargestellt. Da sieht man die 4 Punkte die auch an der richtigen Position sind.

Dateianhang:
points.gif


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: BSP Rendern (RBSP Version 1)
BeitragVerfasst: Sa Mär 12, 2011 15:45 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Zitat:
Da sieht man die 4 Punkte die auch an der richtigen Position sind.

Aber die Reihenfolge ist falsch. Nein, ich habe keine Ahnung wie das passieren kann.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: BSP Rendern (RBSP Version 1)
BeitragVerfasst: Sa Mär 12, 2011 15:58 
Offline
DGL Member

Registriert: Sa Jun 05, 2010 16:15
Beiträge: 94
Hm...hab die richtige Reihenfolge von dem Face jetzt gefunden und es funktioniert, aber nur bei diesen einen. Scheinbar hat jedes Face ne eigene Reihenfolge der Vertices :/....


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 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 ]