PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Alpha Blending


Bl4de
2003-08-28, 18:06:11
Hi Leute ...

Ich versuche gerade zu verstehen, wie 3D Grafik funktioniert. Nun bin ich gerade auf Alpha Blending gestossen und da beschäftigt mich eine Frage.

Wenn ich das richtig verstanden habe, dann wird mit Hilfe des Z-Buffers festgestellt, welche Polygone sichtbar sind. Wenn ich nun annehme, daß mehrere durchsichtige Scheiben in der 3D Szene zu sehen sind, die dann auch noch direkt hinter einander liegen, wie weiss die VPU/GPU in welcher Reihenfolge die Polygone zu sehen sind, da der Z-Buffer in diesem Fall wohl nicht greifen kann ? Oder liege ich da falsch ?

Es wäre nett, wenn mir jemand dabei helfen könnte, denn daß geht mir zur Zeit ein wenig über den Horizont :D ...

Danke im voraus

Demirug
2003-08-28, 18:13:19
Will man Transparente Fenster auf den Bildschirm rendern so kann man mit dem Z-Buffer nur feststellen ab dieses Fenster verdeckt ist. Damit die Fenster am Ende aber richtig dargstellt werden muss die CPU alles was Transparent sein soll in die richtige Reihenfolge bringen (von hinten nach vorne) und dann auch genau in dieser rendern.

Alternativ kann man Fenster natürlich auch anders rendern. Man rendert das was man durch das Fenster sieht zuerst in eine Texture und benutzt diese dann zum rendern des Fensters. Das ganze hat den Vorteil das man so auch noch ein paar schöne Effekte (Glasbrechung) erzeugen kann.

Bl4de
2003-08-28, 19:22:32
Danke Demirug für die schnelle Antwort :)

zeckensack
2003-08-28, 20:00:51
Jopp, es ist tatsächlich ein Problem, daß mit Blending erzeugte transparente Flächen den Z-Buffer 'zumachen'.

'Klassische' Renderer lösen das Problem, indem zuerst die garantiert undurchsichtige Geometrie 'normal' gerendert wird. Die Flächen, für die Blending aktiv ist, werden danach gerendert, und zwar back-to-front. Dabei kann man Z-Writes auch komplett abschalten, den Z-Test braucht man aber immer noch, damit die bereits gerenderten undurchsichtigen Flächen die transparenten korrekt verdecken können.

Oder so :bäh: