Donnerstag, 2024-11-21, 12:19 PM Willkommen Interessent

Video Game Developers Forum

Suche
Menü
Short News
SNpowered by ShortNews.de
News Verzeichnis
[ Neue Beiträge · Teilnehmer · Forumregeln · Suche · RSS ]
  • Seite 1 von 1
  • 1
Moderator in diesem Forum: Goblin1405  
Billboards verfeinern mit Z-Feathering
Goblin1405Datum: Dienstag, 2010-06-08, 7:37 PM | Nachricht # 1
Coder
Gruppe: Administratoren
Nachrichten: 89
Auszeichnungen: 0
Status: Offline
In diesem rein theoretischen Tutorial will ich über die Problematik von Geometrie schneidenden Billboards sprechen die so in praktisch allen Spielen vorzufinden ist. Ziel des Tutorials ist es zu erläutern wie die häßlichen Schnittkanten die dabei entstehen effektiv unterdrückt werden können.

Billboards

Das sind in der Regel viereckige, texturierte Polygone, die zur Kamera hin ausgerichtet werden. Sie werden vor allem dazu eingesetzt Detailreichtum vorzutäuschen weshalb sie auch Imposter (engl. Betrüger, Täuscher) genannt werden. So können weit entfernte Objekte wie zum Beispiel Bäume resourcensparend dargestellt werden, indem statt einem Model ein Billboard benutzt wird (siehe z.B. FarCry).

Schnittkanten

Schauen wir uns zunächst einmal an von welchen Kanten eigentlich die Rede ist. Im folgenden Bild sehen wir eine in nebel gehüllte Hügellandschaft. Überall dort wo die Nebelbillboards die Hügel schneiden entstehen deutlich sichtbare Kanten.

Billboardnebel, der die Hügel schneidet

Die Kanten entstehen weil die Billboards nur zu den Rändern hin einen Alphawert von 0 in ihrer Textur haben, also transparent sind. Werden sie aber "innen" geschnitten, weil sie einen Hügel durchdringen, so kann man an den Schnittflächen deutliche Kanten erkennen, da die Billboardtextur dort in der Regel nicht transparent genug ist.

Z-Feathering

Beim Z-Feathering werden nun die Informationen aus dem Z-Puffer benutzt um die Billboards zu ihren Schnittflächen hin auszublenden um so der sichtbaren Kantenbildung entgegenzuwirken.

Schema des Z-Feathering

Dies wird erreicht indem die Tiefeninformation jedes Fragments mit dem bereits im Tiefenpuffer vorhandenen Wert (aufgrund der Hügellandschaft) verglichen wird. Sobald die Differenz zwischen Fragement- und Z-Pufferwert einen vorgegebenen Schwellwert unterschreitet wird damit begonnen die Transparenz des Fragments zu erhöhen. Die betroffenen Fragmente werden also weich "ausgeblendet".

Das Ergebnis für die oben gezeigte Szene sieht dann folgendermaßen aus:

Billboardnebel ohne Schnittkanten

An dieser Stelle muss ich mich entschuldigen keinen Code beigelegt zu haben. Der mir vorliegende Quellcode gehört meinem Arbeitgeber. Ich werde aber Pseudocode für die Shader nachliefern, der die Funktionalität verdeutlichen sollte.

Quelle: bei Interess bitte klicken

 
  • Seite 1 von 1
  • 1
Suche:

Our Age
Mini Profil


Statistik
Bookmarks
Copyright by GamesArmyLabs © 2024