Freigeben über


D3D11_1_DDI_RASTERIZER_DESC-Struktur (d3d10umddi.h)

Beschreibt einen Rasterisierungsstatus. Wird von Windows Display Driver Model (WDDM) 1.2 und höher für Benutzermodusanzeigetreiber 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;

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 Abschnitt Hinweise.

[in] DepthBiasClamp

Ein Gleitkommavektor mit nur einer Genauigkeit, der in Verzerrungsformeln verwendet wird. Weitere Informationen zu DepthBiasClamp finden Sie im Abschnitt Hinweise.

[in] SlopeScaledDepthBias

Ein Gleitkommavektor mit nur einer Genauigkeit, der in Verzerrungsformeln verwendet wird. Weitere Informationen zu SlopeScaledDepthBias finden Sie im 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.

[in] ForcedSampleCount

Gibt beim Rendern von ungeordneten Zugriffsansichten (UAVs) oder Renderingzielansichten (RTVs) an, ob eine Beispielanzahl erzwingt werden soll, und wenn ja, die maximale Stichprobenanzahl. Gültige Werte sind 0, 1, 4, 8 und 16.

Wenn null, sollte der Treiber keine Stichprobenanzahl erzwingen.

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) Windows 8
Unterstützte Mindestversion (Server) Windows Server 2012
Kopfzeile d3d10umddi.h (einschließlich D3d10umddi.h)