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

Aktuelle Zeit: So Jun 16, 2024 19:31

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



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Do Nov 06, 2014 23:54 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 12, 2013 07:45
Beiträge: 61
Programmiersprache: Turbo Delphi 2006
Hallo,

ich habe in meinem Programm einen 3D-Bereich und eine GUI welche teilweise in den 3D-Bereich hineinragt. Jetzt kommt es manchmal vor, das ein Stück von einem 3D Objekt die GUI-Fläche durchstößt.
Kann man das mit einer ClipPlane verhindern oder kennt jemand eine bessere Lösung?


Zuletzt geändert von Twist am Sa Nov 08, 2014 16:20, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Nov 07, 2014 02:32 
Offline
DGL Member

Registriert: Fr Mai 11, 2012 13:25
Beiträge: 229
Programmiersprache: c++, c, JavaScript
Hi, also ich würde die GUI als letztes zeichnen und davor glDisable(GL_DEPTH_TEST); rufen.
Aber bevor Du dann wieder 3D rederst, musst Du glEnable(GL_DEPTH_TEST); rufen.

_________________
"Pixel, ich bin dein Vater."
-Darf Shader


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Nov 07, 2014 07:24 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 12, 2013 07:45
Beiträge: 61
Programmiersprache: Turbo Delphi 2006
Danke,
es funktioniert nur wird jetzt die GUI total verwuschtelt. Da muß ich jetzt noch die Zeichenreihenfolge beachten. Einige transparente Bereiche sind nicht mehr durchsichtig.
Mal sehen ob das wird oder ob ich die GUI in eine Textur rendere und dann nur draufbügle.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Nov 07, 2014 16:15 
Offline
DGL Member

Registriert: Fr Mai 11, 2012 13:25
Beiträge: 229
Programmiersprache: c++, c, JavaScript
Aha, dann mach es folgendermaßen:
Zeichne die Gui als letztes, lass das Depthtesting aktiv, also lass das disable weg, statt dessen ruf bevor du die Gui renderst :
glClear(GL_DEPTH_BUFFER_BIT);
Bzw. möchtest Du, dass die Szene durch die Gui via Alphablending zu sehen ist? Dann geht das nicht, weil die Pixel nach dem Leeren des Tiefenbuffers überschrieben werden.
Dann solltest Du die Reihenfolge beachten, die Gui als letztes Zeichnen und z.B. mit gluPerspective(); die near clipping plane für die Szene so einstellen, dass sie alles vor der GUI abschneidet.

_________________
"Pixel, ich bin dein Vater."
-Darf Shader


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Nov 08, 2014 16:20 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 12, 2013 07:45
Beiträge: 61
Programmiersprache: Turbo Delphi 2006
Manchmal ist man wie Brett vorm Kopf. Die GUI wird mit glOrtho gezeichnet und da kann man die Nahgrenze verschieben und alles weiter vorn zeichnen.


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 51 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.081s | 17 Queries | GZIP : On ]