D3D11_1_DDI_RASTERIZER_DESC Struktur (d3d10umddi.h)
Beschreibt einen Rasterizerstatus. Wird von Windows Display Driver Model (WDDM) 1.2 und höher angezeigten Treibern für den Benutzermodus verwendet.
Syntax
typedef struct D3D11_1_DDI_RASTERIZER_DESC {
[in] D3D10_DDI_FILL_MODE FillMode;
[in] D3D10_DDI_CULL_MODE CullMode;
[in] BOOL FrontCounterClockwise;
[in] INT DepthBias;
[in] FLOAT DepthBiasClamp;
[in] FLOAT SlopeScaledDepthBias;
[in] BOOL DepthClipEnable;
[in] BOOL ScissorEnable;
[in] BOOL MultisampleEnable;
[in] BOOL AntialiasedLineEnable;
[in] UINT ForcedSampleCount;
} D3D11_1_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 DepthBiasfinden Sie im Abschnitt "Hinweise".
[in] DepthBiasClamp
Ein Gleitkommavektor mit einfacher Genauigkeit, der bei voreingenommenen Formeln verwendet wird. Weitere Informationen zu DepthBiasClampfinden Sie im Abschnitt "Hinweise".
[in] SlopeScaledDepthBias
Ein Gleitkommavektor mit einfacher Genauigkeit, der bei voreingenommenen Formeln verwendet wird. Weitere Informationen zu SlopeScaledDepthBiasfinden Sie im 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.
[in] ForcedSampleCount
Gibt beim Rendern von ungeordneten Zugriffsansichten (UAVs) oder Renderingzielansichten (RTVs) an, ob eine Beispielanzahl erzwungen werden soll, und falls ja, die maximale Beispielanzahl. Gültige Werte sind 0, 1, 4, 8 und 16.
Wenn null, sollte der Treiber keine Beispielanzahl erzwingen.
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- | Windows 8 |
mindestens unterstützte Server- | Windows Server 2012 |
Header- | d3d10umddi.h (include D3d10umddi.h) |