D3D10_DDI_RASTERIZER_DESC Struktur (d3d10umddi.h)
Die D3D10_DDI_RASTERIZER_DESC-Struktur beschreibt einen Rasterizerzustand.
Syntax
typedef struct D3D10_DDI_RASTERIZER_DESC {
[in] D3D10_DDI_FILL_MODE FillMode;
[in] D3D10_DDI_CULL_MODE CullMode;
[in] BOOL FrontCounterClockwise;
[in] INT32 DepthBias;
[in] FLOAT DepthBiasClamp;
[in] FLOAT SlopeScaledDepthBias;
[in] BOOL DepthClipEnable;
[in] BOOL ScissorEnable;
[in] BOOL MultisampleEnable;
[in] BOOL AntialiasedLineEnable;
} D3D10_DDI_RASTERIZER_DESC;
Angehörige
[in] FillMode
Ein Wert, der den Füllmodus für Grundtypen angibt. Dieses Element muss auf einen der folgenden Werte aus der D3D10_DDI_FILL_MODE-Enumeration festgelegt werden.
Wert | Bedeutung |
---|---|
D3D10_DDI_FILL_WIREFRAME (2) | Füllt Drahtmodelle aus. |
D3D10_DDI_FILL_SOLID (3) | Füllt Einfarbig aus. |
[in] CullMode
Ein Wert, der angibt, wie umgekehrt ausgerichtete Dreiecke überhaupt gekullt werden. Dieses Element muss auf einen der folgenden Werte aus der D3D10_DDI_CULL_MODE-Aufzählung festgelegt werden.
Wert | Bedeutung |
---|---|
D3D10_DDI_CULL_NONE (1) | Ullen Sie keine Dreiecke. |
D3D10_DDI_CULL_FRONT (2) | Stirnseite spülen. |
D3D10_DDI_CULL_BACK (3) | Spülen Sie Die Gesichter. |
[in] FrontCounterClockwise
Ein boolescher Wert, der angibt, ob Scheitelpunkte, die in einer Gegenrichtung (im Hinblick auf den Rasterizer) bereitgestellt werden, vorne gerichtet sind. TRUE gibt an, dass sie sind; FALSE- gibt an, dass gegen den Uhrzeigersinn Scheitelpunkte auf der Rückseite zeigen.
[in] DepthBias
Eine Tiefenverzerrungskonstante, die bei voreingenommenen Formeln verwendet werden soll. Weitere Informationen zu DepthBias-finden Sie im folgenden Abschnitt "Hinweise".
[in] DepthBiasClamp
Ein Gleitkommavektor mit einfacher Genauigkeit, der bei voreingenommenen Formeln verwendet wird. Weitere Informationen zu DepthBiasClamp-finden Sie im folgenden Abschnitt "Hinweise".
[in] SlopeScaledDepthBias
Ein Gleitkommavektor mit einfacher Genauigkeit, der bei voreingenommenen Formeln verwendet wird. Weitere Informationen zu SlopeScaledDepthBiasfinden Sie im folgenden Abschnitt "Hinweise".
[in] DepthClipEnable
Ein boolescher Wert, der angibt, ob der Treiber Vertex z-Koordinaten für den Viewport-Tiefenbereich abschneiden soll. TRUE- gibt den Clip an; FALSE- gibt an, dass der Clip nicht abgeschnitten wird.
[in] ScissorEnable
Ein boolescher Wert, der angibt, ob der Treiber Pixel verwerfen soll, die außerhalb des entsprechenden scherenförmigen Bereichs liegen. TRUE- gibt an, dass sie verworfen werden sollen; FALSE- gibt an, dass sie nicht verworfen werden sollen.
[in] MultisampleEnable
Ein boolescher Wert, der angibt, ob der Treiber regeln für die mehrfache Rasterung folgen muss. TRUE weist darauf hin, dass die Regeln eingehalten werden; FALSE gibt an, dass die Regeln nicht erforderlich sind. Regeln für mehrfache Rasterung halten true, auch wenn Renderziele nur ein einzelnes Beispiel enthalten.
[in] AntialiasedLineEnable
Ein boolescher Wert, der angibt, ob der Treiber Zeilen rendern soll, die den Regeln für die antialiasierte Linienrasterung entsprechen. TRUE weist darauf hin, dass die Regeln eingehalten werden; FALSE gibt an, dass die Regeln nicht erforderlich sind. Der Treiber ignoriert den Wert in AntialiasedLineEnable-, wenn stattdessen Regeln für die Rasterung mit mehreren Samplings verwendet werden.
Bemerkungen
Eines der Artefakte mit schattenpufferbasierten Schatten ist "Schatten akne" (d. a. eine Oberfläche, die sich aufgrund von Inexaktität bei der Berechnung der Tiefe der Oberfläche aus dem Shader, die mit der Tiefe der gleichen Oberfläche im Schattenpuffer verglichen wird) auf vorübergehende Weise schattiert. Eine Möglichkeit, Schatten akne zu lindern, ist die Verwendung der DepthBias und SlopeScaledDepthBias Member beim Rendern eines Schattenpuffers. Die Absicht besteht darin, Oberflächen beim Rendern eines Schattenpuffers ausreichend herauszuschieben. Wenn diese Oberflächen während des Schattentests mit sich selbst verglichen werden, ist das Vergleichsergebnis über die Oberfläche konsistent, und die lokale Selbstschattierung wird vermieden.
Die Verwendung von DepthBias und SlopeScaledDepthBias allein kann jedoch einige Artefakte auslösen. Beispielsweise bewirkt ein extrem steiles Polygon, dass die Verzerrungsformel explodiert, wodurch das Polygon extrem weit von der ursprünglichen Oberfläche in der Schattenkarte entfernt wird. Betrachten Sie ein steiles Gesicht in Bezug auf ein Licht, das extrem weit in Bezug auf die Dimensionen des übergeordneten Objekts durch Tiefenverzerrung verschoben wird. Angenommen, dieses Gesicht ist von flacheren Gesichtern umgeben, dass die Verzerrungsgleichung viel weniger ausgedrungen ist. Die resultierende Schattenkarte hat eine riesige Unterbrechung, die Löcher im Schatten verursachen kann, die von einer Oberfläche auf eine andere Oberfläche gegossen werden, näher als die explodierten Gesichter. Eine Möglichkeit zur Erleichterung dieses speziellen Problems ist die Verwendung des DepthBiasClamp- Members, das eine anwendung settable obere Grenze (positiv oder negativ) für die Größe der Z-Verzerrung bereitstellt.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme. |
Header- | d3d10umddi.h (include D3d10umddi.h) |