Tipp 0490 Cull Mode
Autor/Einsender:
Datum:
  Alexander Csadek
09.04.2006
Entwicklungsumgebung:
DirectX-Version:
  VB 6
DirectX 8
Mit dem Direct3D Cull Mode wird festgelegt, welche Seite einer aus 3 Vertexen bestehenden Fläche sichtbar ist und welche nicht. Der Sinn besteht darin, Renderzeit zu sparen.

Nur wie legt man fest, welche Seite die Vorder- bzw. die Rückseite ist?

Dafür ist die Reihenfolge der Vertexe (Winding Order) zuständig. Betrachtet man eine Fläche und stellt fest, dass die Vertexe im Uhrzeigersinn angeordnet sind, dann ist dies die Vorderseite (siehe Bild)

Mit dem Cull Mode wird also festgelegt, welche Seite gerendert werden soll.

  D3DCULL_NONE   beide Seiten werden gerendert
  D3DCULL_CW     die Vorderseite wird nicht gerendert 
                 (CW = Clockwise)
  D3DCULL_CCW    die Rückseite wird nicht gerendert
                 (CCW = Counterclockwise)
Da der Cull Mode ein Render-Status ist, muss dies dem 3D-Device mitgeteilt werden.
 
gD3DDevice8.SetRenderState D3DRS_CULLMODE, D3DCULL_CCW
 
Wird der Cull Mode in einer 3D-Anwendung einsetzt, dann ist darauf zu achten, dass alle Vertexe korrekt angeordnet sind. Ansonsten könnte es passieren, dass in der fertig gerenderten Szene "Löcher" sind.
Hinweis
Um dieses Beispiel ausführen zu können, wird die DirectX 8 for Visual Basic Type Library benötigt (siehe dazu die Erläuterungen in der DirectX-Rubrik).

Windows-Version
95
98
ME
NT
2000
XP
Vista
Win 7
VB-Version
VBA 5
VBA 6
VB 4/16
VB 4/32
VB 5
VB 6


Download  (297 kB) Downloads bisher: [ 229 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Sonntag, 28. August 2011