D3D10_DDI_RASTERIZER_DESC-Struktur (d3d10umddi.h)
Die D3D10_DDI_RASTERIZER_DESC-Struktur beschreibt einen Rasterisierungszustand.
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;
Member
[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 Wireframes aus. |
D3D10_DDI_FILL_SOLID (3) | Füllt Festkörper aus. |
[in] CullMode
Ein Wert, der angibt, wie nach hinten gerichtete Dreiecke , wenn überhaupt, gekullt werden. Dieser Member muss auf einen der folgenden Werte aus der D3D10_DDI_CULL_MODE-Enumeration festgelegt werden.
Wert | Bedeutung |
---|---|
D3D10_DDI_CULL_NONE (1) | Ullen Sie keine Dreiecke. |
D3D10_DDI_CULL_FRONT (2) | Ull-Frontflächen. |
D3D10_DDI_CULL_BACK (3) | Zurückflässer. |
[in] FrontCounterClockwise
Ein boolescher Wert, der angibt, ob Scheitelpunkte, die in einer gegen den Uhrzeigersinn (in Bezug auf den Rasterisierer) bereitgestellt werden, nach vorne ausgerichtet sind. TRUE gibt an, dass sie sind; FALSE gibt an, dass scheitelige Scheitelpunkte gegen den Uhrzeigersinn auf die Rückseite verweisen.
[in] DepthBias
Eine Tiefenverzerrungskonstante, die in Verzerrungsformeln verwendet werden soll. Weitere Informationen zu DepthBias finden Sie im folgenden Abschnitt mit den Anmerkungen.
[in] DepthBiasClamp
Ein Gleitkommavektor mit nur einer Genauigkeit, der in Verzerrungsformeln verwendet wird. Weitere Informationen zu DepthBiasClamp finden Sie im folgenden Abschnitt Mit Anmerkungen.
[in] SlopeScaledDepthBias
Ein Gleitkommavektor mit nur einer Genauigkeit, der in Verzerrungsformeln verwendet wird. Weitere Informationen zu SlopeScaledDepthBias finden Sie im folgenden Abschnitt Hinweise.
[in] DepthClipEnable
Ein boolescher Wert, der angibt, ob der Treiber Vertex z-Koordinaten für den Viewporttiefebereich abschneiden soll. TRUE gibt an, dass ein Clip ausgeschnitten wird. FALSE gibt an, dass kein Clip angezeigt wird.
[in] ScissorEnable
Ein boolescher Wert, der angibt, ob der Treiber Pixel verwerfen soll, die außerhalb des entsprechenden rechteckigen Scherenbereichs liegen. TRUE gibt an, dass verworfen wird. FALSE gibt an, nicht verworfen zu werden.
[in] MultisampleEnable
Ein boolescher Wert, der angibt, ob der Treiber Regeln für die Rasterung mit mehreren Stichproben befolgen muss. TRUE gibt an, die Regeln zu befolgen. FALSE gibt an, dass die Regeln nicht erforderlich sind. Rasterregeln mit mehreren Stichproben enthalten true, auch wenn Renderziele nur ein einzelnes Beispiel enthalten.
[in] AntialiasedLineEnable
Ein boolescher Wert, der angibt, ob der Treiber Zeilen rendern soll, die den Antialiased Line-Rasterungsregeln folgen. TRUE gibt an, die Regeln zu befolgen. FALSE gibt an, dass die Regeln nicht erforderlich sind. Der Treiber ignoriert den Wert in AntialiasedLineEnable , wenn stattdessen Rasterregeln für mehrere Stichproben verwendet werden.
Hinweise
Eines der Artefakte mit schattenpufferbasierten Schatten ist "Schattenakne" (d.a. eine Oberfläche, die sich aufgrund der Ungenaukeit bei der Berechnung der Tiefe der Oberfläche aus dem Shader, die mit der Tiefe der gleichen Oberfläche im Schattenpuffer verglichen wird, zeitweilig überschattet). Eine Möglichkeit, Schattenakne zu lindern, besteht darin, beim Rendern eines Schattenpuffers die Member DepthBias und SlopeScaledDepthBias zu verwenden. Die Absicht besteht darin, Beim Rendern eines Schattenpuffers Oberflächen ausreichend herauszudrücken. Wenn diese Oberflächen während des Schattentests durch shader-computed z mit sich selbst verglichen werden, ist das Vergleichsergebnis auf der gesamten Oberfläche konsistent, und lokale Selbstschattung wird vermieden.
Die Verwendung von DepthBias und SlopeScaledDepthBias allein kann jedoch einige Artefakte mit sich bringen. Beispielsweise führt ein extrem steiles Polygon dazu, dass die Biasgleichung explodiert, wodurch das Polygon extrem weit von der ursprünglichen Oberfläche in der Schattenkarte entfernt wird. Betrachten Sie eine steile Gesichtswand in Bezug auf ein Licht, das im Verhältnis zu den Dimensionen des übergeordneten Objekts durch Tiefenverzerrung extrem weit weggeschoben wird. Angenommen, dieses Gesicht ist von flacheren Gesichtern umgeben, die die Bias-Gleichung viel weniger herausgedrängt hat. Die resultierende Schattenkarte weist eine große Diskontinuität auf, die Löcher im Schatten verursachen kann, die von einer Oberfläche auf eine andere Oberfläche geworfen werden, die näher als die explodierten Gesichter ist. Eine Möglichkeit, dieses spezielle Problem zu beheben, besteht darin, den DepthBiasClamp-Member zu verwenden, der eine für die Anwendung einstellbare Obergrenze (positiv oder negativ) für die Größe der z-Verzerrung bereitstellt.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme. |
Kopfzeile | d3d10umddi.h (einschließlich D3d10umddi.h) |