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