Schreiben in den Tiefenpuffer ohne Tiefenprüfung in OpenGL (kein Shader)

7

In OpenGL ist es möglich, eine Folge von Polygonen zu zeichnen, die nicht auf Tiefe prüft (also werden sie immer vor anderen Polygonen gezeichnet, die davor gezeichnet werden, in Bezug auf ihre z-Position)

aber zur gleichen Zeit schreiben sie immer noch in den Tiefenpuffer?

Ich nehme an, das ist mit Shadern machbar, aber im Moment habe ich keinen Zugriff darauf.

    
kamziro 12.12.2010, 11:42
quelle

2 Antworten

16

Nicht streng genommen (von der man-Seite ):

  

Der Tiefenpuffer wird nicht aktualisiert, wenn der Tiefentest deaktiviert ist.

Aber ... Sie können den Tiefen-Test aktivieren, während kein Fragment den Test nicht besteht:

%Vor%

Natürlich bekommst du das letzte Z geschrieben, indem du das tust, nicht das, was der Ansicht am nächsten ist.

    
Bahbar 12.12.2010, 13:02
quelle
3

Das kann man nur mit zwei Durchgängen erreichen. Die erste besteht darin, den Tiefenpuffer nur mit einer Farbmaske aufzufüllen:

%Vor%

Im zweiten Durchlauf aktivieren Sie das Farbschreiben erneut, deaktivieren den Tiefen-Test und rendern die Reihenfolge der Polygone in der richtigen Reihenfolge.

    
Stringer 12.12.2010 16:05
quelle

Tags und Links