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

Aktuelle Zeit: Do Jul 10, 2025 10:42

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



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Durchsichtig?!
BeitragVerfasst: So Jul 11, 2004 11:09 
Offline
DGL Member

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

ich habe den folgenden Code geschrieben, der mir ein Universum rendert:

Code:
  1.  
  2.   { Planeten }
  3.   glDisable(GL_BLEND);
  4.   glEnable(GL_DEPTH_TEST);
  5.   glBindTexture(GL_TEXTURE_2D, tex[14]);
  6.   gluSphere(planets[0+3],planets_data[1,0],80,80);
  7.   glEnable(GL_LIGHTING);
  8.  
  9.   for i := 1 to 9 do
  10.   begin
  11.     glColor4f(1,1,1,1.0);
  12.     glDisable(GL_BLEND);
  13.     glEnable(GL_DEPTH_TEST);
  14.     glTranslatef(0,-planets_data[2,i]*20,0);
  15.     glBindTexture(GL_TEXTURE_2D, tex[i+3]);
  16.     gluSphere(planets[i+3],planets_data[1,i],50,50);
  17. {---> Atmosphäre}
  18.     glEnable(GL_BLEND);
  19.     glDisable(GL_DEPTH_TEST);
  20.     glBlendFunc(GL_SRC_ALPHA,GL_ONE);
  21.     glColor4f(1,1,1,durchs);
  22.     glBindTexture(GL_TEXTURE_2D, tex[0]);
  23.     gluSphere(planets_atm[i+3],planets_data[1,i]+planets_data[1,i]/100,50,50);
  24.   end;
  25.  


Wenn ich den Code ausführe, sieht man das Universum so, wie ich es erwartet hätte mit der Ausnahme, dass man durch die PLANETEN sehen kann.
Warum macht er die Planeten durchsichtig, wenn ich doch oben GL_BLEND eindeutig ausschalte?

Danke...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jul 11, 2004 11:19 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Sind die Transparent oder Unsichtbar?
Bild her ;-)

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jul 11, 2004 11:23 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mai 27, 2002 16:29
Beiträge: 77
Wohnort: Düsseldorf
Vermutlich sind die Planeten nicht wirklich transparent, (hast du jemals einen Planeten durch einen anderen gesehen, oder immer nur die Atmosphäre?) beim Rendern der Atmosphäre testen er, jedoch wegen dem Ausgeschalten DEPTH_TEST nicht, ob die Atmosphäre hinter einem Planeten liegt, so dass du sie durch den Planeten hindurch sehen kannst.
Wenn du den Tiefentest anlässt, wenn du die Atmospäre rendern, sieht es wahrscheinlich richtig aus, bis darauf, dass die hinteren Teile von ihr nicht mehr richtig sind, aber die sind ja eh hinter dem Planeten.
Wenn der Tiefentest extrem stört, kannst du das Speichern der Entfernung über glDepthMask abschalten, (das Lesen bleibt an), dann rendern, und dann nochmal, nur umgekehrt, also über glColorMask einstellen, dass er nicht zeichnet, aber die Entfernung speichert. Aber das ist langsam, und soll nicht auf jeder Karte laufen.

_________________
Probleme sind zum Lösen da


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: screenshot...
BeitragVerfasst: So Jul 11, 2004 11:31 
Offline
DGL Member

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

man sieht deutlich, dass man Jupiter(!) und mars(!) (kleiner punkt) durch die ERDE sehen kann...


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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jul 11, 2004 12:04 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Code:
  1.   for i := 1 to 9 do
  2.   begin
  3.     glColor4f(1,1,1,1.0);
  4.     glTranslatef(0,-planets_data[2,i]*20,0);
  5.     glBindTexture(GL_TEXTURE_2D, tex[i+3]);
  6.     gluSphere(planets[i+3],planets_data[1,i],50,50);
  7. {---> Atmosphäre}
  8.     glEnable(GL_BLEND);
  9.     glBlendFunc(GL_SRC_ALPHA,GL_ONE);
  10.     glColor4f(1,1,1,durchs);
  11.     glBindTexture(GL_TEXTURE_2D, tex[0]);
  12.     gluSphere(planets_atm[i+3],planets_data[1,i]+planets_data[1,i]/100,50,50);
  13.     glDisable(GL_BLEND);
  14.   end;


Das würde ich schonmal so machen, aber warum den Depth Test bitteschön deaktivieren?
Probiers ma so, aber bin mir net sicher ob das was bringt.

Steht denn sonst noch in deinem Code obendrüber uoder unten drunter irgendwelcher Render-code?

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: fragt mich nicht warum...
BeitragVerfasst: So Jul 11, 2004 12:34 
Offline
DGL Member

Registriert: Sa Feb 28, 2004 15:36
Beiträge: 40
*plötzlichandenkopffass*

wieso habe ich denn da den dephth-buffer disabled?! klar, dass er deswegen auch alles scheinbar durchsichtig rendert...

danke


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


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.008s | 14 Queries | GZIP : On ]