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

Aktuelle Zeit: Mi Jul 09, 2025 19:40

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
BeitragVerfasst: So Jun 27, 2004 10:25 
Offline
DGL Member

Registriert: Sa Feb 28, 2004 15:36
Beiträge: 40
Hallo,

ich möchte gerade noch mal ein bisschen grundlagen wiederholen und da will plötzlich der "Überläufer" aus dem "Verblendet" Tut nicht mehr :(

Code:
  1.  
  2. gltranslatef(view_x,view_y,view_z);
  3.   glBindTexture(GL_TEXTURE_2D,tex[1]);
  4.     glBegin(gl_Quads);
  5.         glColor4f(1,1,1,1);
  6.         glTexCoord2f(0,0);
  7.         glVertex3f(-1,-1,0);
  8.  
  9.         glColor4f(1,1,1,0);
  10.         glTexCoord2f(1,0);
  11.         glVertex3f(1,-1,0);
  12.         glTexCoord2f(1,1);
  13.         glvertex3f(1,1,0);
  14.  
  15.         glColor4f(1,1,1,1);
  16.         glTexCoord2f(0,1);
  17.         glvertex3f(-1,1,0);
  18.     glEnd;
  19.  
  20.     glEnable(GL_BLEND);
  21.     glBlendFunc(GL_SRC_ALPHA,GL_DST_ALPHA);
  22.  
  23.   glBindTexture(GL_TEXTURE_2D,tex[2]);
  24.     glBegin(gl_Quads);
  25.         glColor4f(1,1,1,0);
  26.         glTexCoord2f(0,0);
  27.         glVertex3f(-1,-1,0);
  28.  
  29.         glColor4f(1,1,1,1);
  30.         glTexCoord2f(1,0);
  31.         glVertex3f(1,-1,0);
  32.         glTexCoord2f(1,1);
  33.         glvertex3f(1,1,0);
  34.  
  35.         glColor4f(1,1,1,0);
  36.         glTexCoord2f(0,1);
  37.         glvertex3f(-1,1,0);
  38.     glEnd;
  39.  


Er zeigt mir leider nur die erste Textur und die nach rechts "abgeblendet".
Woran kann das liegen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jun 27, 2004 10:31 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Da du die zwei Quads auf der gleichen Z-Position renderst musst du auch den korrekten Tiefentest aktivieren. Für den obigen Fall muss das entweder GL_LEQUAL (steht für "Less or Equal") oder GL_ALWAYS (was im Endeffekt einem glDisable(GL_DEPTH_TEST)) entspricht sein.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Danke
BeitragVerfasst: So Jun 27, 2004 10:37 
Offline
DGL Member

Registriert: Sa Feb 28, 2004 15:36
Beiträge: 40
Ja, das war das Problem!
Danke!

Ich weiß jetzt aber noch nicht so genau wozu überhaupt der DepthBuffer gut ist. Kann mir das nochmal jemand erklären?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jun 27, 2004 10:45 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Ich machs mal kurz, denn Dokumentation zum Tiefenpuffer gibts im Netz in Hülle und Fülle :
Der Tiefenpuffer speichert für jedes Fragment einen Tiefenwert um ermitteln zu können ob ein nachkommendes Fragment an gleicher Position nun vor oder hinter dem dort bereits befindlichen Fragment liegt.

Im Normalfall (GL_LEQUAL, GL_LESS) wird der Tiefenpuffer so eingestellt dass Fragmente gerendert werden, sobald ihr Z-Wert niedriger ist als das (wenn) Fragment auf gleicher Position (niedriger bedeutet näher am Betrachter).

Summa summarum : Der Tiefenpuffer ist eigentlich dazu gedacht Objekte in der dritten Dimension korrekt "sortieren" zu können, so dass ein hintenliegendes Objekt weil es als letztes gerendert wird nicht ein Objekt überdeckt das eigentlich davor liegt.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: ahhh
BeitragVerfasst: So Jun 27, 2004 10:53 
Offline
DGL Member

Registriert: Sa Feb 28, 2004 15:36
Beiträge: 40
ahhh...

dann ist auch jetzt klar: less or equal

das bedeutet nämlich, dass das objekt sowohl vor (= less z-wert) als auch genau darauf liegen (= equal z-wert) darf UND gerendert wird.

Danke!


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 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 | 16 Queries | GZIP : On ]