![]() |
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 Vertex en 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.
|
|
|
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: [ 323 ]
|
|
|