Freigeben über


D3D12_RASTERIZER_DESC-Struktur (d3d12.h)

Beschreibt den Rasterisierungsstatus.

Syntax

typedef struct D3D12_RASTERIZER_DESC {
  D3D12_FILL_MODE                       FillMode;
  D3D12_CULL_MODE                       CullMode;
  BOOL                                  FrontCounterClockwise;
  INT                                   DepthBias;
  FLOAT                                 DepthBiasClamp;
  FLOAT                                 SlopeScaledDepthBias;
  BOOL                                  DepthClipEnable;
  BOOL                                  MultisampleEnable;
  BOOL                                  AntialiasedLineEnable;
  UINT                                  ForcedSampleCount;
  D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
} D3D12_RASTERIZER_DESC;

Member

FillMode

Ein D3D12_FILL_MODE typisierter Wert, der den Füllmodus angibt, der beim Rendern verwendet werden soll.

CullMode

Ein D3D12_CULL_MODE typisierter Wert, der angibt, dass Dreiecke, die der angegebenen Richtung zugewandt sind, nicht gezeichnet werden.

FrontCounterClockwise

Bestimmt, ob ein Dreieck nach vorne oder nach hinten ausgerichtet ist. Wenn dieses Element TRUE ist, wird ein Dreieck als frontseitig betrachtet, wenn seine Scheitelpunkte auf dem Renderziel gegen den Uhrzeigersinn und umgekehrt gelten, wenn sie im Uhrzeigersinn sind. Wenn dieser Parameter FALSE ist, ist das Gegenteil wahr.

DepthBias

Tiefenwert, der einem bestimmten Pixel hinzugefügt wird. Informationen zu Tiefenverzerrungen finden Sie unter Tiefenvoreingenommenheit.

DepthBiasClamp

Maximale Tiefenverzerrung eines Pixels. Informationen zu Tiefenverzerrungen finden Sie unter Tiefenvoreingenommenheit.

SlopeScaledDepthBias

Skalar auf der Neigung eines bestimmten Pixels. Informationen zu Tiefenverzerrungen finden Sie unter Tiefenvoreingenommenheit.

DepthClipEnable

Gibt an, ob das Ausschneiden basierend auf der Entfernung aktiviert werden soll.

Die Hardware führt immer x- und y-Clipping von gerasterten Koordinaten durch. Wenn DepthClipEnable auf den Standardwert TRUE festgelegt ist, klammert die Hardware auch den z-Wert ab (d. a. die Hardware führt den letzten Schritt des folgenden Algorithmus aus).


0 < w
-w <= x <= w (or arbitrarily wider range if implementation uses a guard band to reduce clipping burden)
-w <= y <= w (or arbitrarily wider range if implementation uses a guard band to reduce clipping burden)
0 <= z <= w

Wenn Sie DepthClipEnable auf FALSE festlegen, überspringt die Hardware das z-Clipping (also den letzten Schritt im vorherigen Algorithmus). Die Hardware führt jedoch weiterhin das "0 < w"-Clipping aus. Wenn das Z-Clipping deaktiviert ist, kann es zu einer falschen Tiefenreihenfolge auf Pixelebene kommen. Wenn das Z-Clipping jedoch deaktiviert ist, werden Die Implementierungen von Schablonenschatten vereinfacht. Mit anderen Worten, Sie können eine komplexe Sonderfallbehandlung für Geometrie vermeiden, die über die zurückgeschnittene Ebene hinausgeht.

MultisampleEnable

Gibt an, ob der Quadrilateral- oder Alphaline-Antialiasingalgorithmus auf MSAA-Renderzielen (Multisample Antialiasing) verwendet werden soll. Legen Sie true fest, um den Antialiasingalalgorithmus für viereckige Linien zu verwenden, und auf FALSE , um den Antialiasingalgorithmus für Alphalinien zu verwenden. Weitere Informationen zu diesem Member finden Sie unter Hinweise.

AntialiasedLineEnable

Gibt an, ob das Zeilen-Antialiasing aktiviert werden soll; Gilt nur, wenn das Zeichnen von Linien und MultisampleEnableFALSE ist. Weitere Informationen zu diesem Member finden Sie unter Hinweise.

ForcedSampleCount

Typ: UINT

Die Beispielanzahl, die beim Rendern oder Rastern von UAV erzwungen wird. Gültige Werte sind 0, 1, 4, 8 und optional 16. 0 gibt an, dass die Stichprobenanzahl nicht erzwungen wird.

Hinweis Wenn Sie mit forcedSampleCount auf 1 oder höher rendern möchten, müssen Sie die folgenden Richtlinien befolgen:
  • Binden Sie keine Tiefenschablonenansichten.
  • Deaktivieren Sie tiefentests.
  • Stellen Sie sicher, dass der Shader keine Tiefe ausgibt.
  • Wenn Sie Renderzielsichten (D3D12_DESCRIPTOR_HEAP_TYPE_RTV) gebunden haben und ForcedSampleCount größer als 1 ist, stellen Sie sicher, dass jedes Renderziel nur über ein einzelnes Beispiel verfügt.
  • Führen Sie den Shader nicht mit der Beispielhäufigkeit aus. Id3D12ShaderReflection::IsSampleFrequencyShader gibt daher FALSE zurück.
Andernfalls ist das Renderingverhalten nicht definiert.

ConservativeRaster

Ein D3D12_CONSERVATIVE_RASTERIZATION_MODE typisierter Wert, der angibt, ob die konservative Rasterung aktiviert oder deaktiviert ist.

Hinweise

Eine D3D12_GRAPHICS_PIPELINE_STATE_DESC enthält eine Rasterisierungszustandsstruktur.

Der Rasterisierungszustand definiert das Verhalten der Rasterizerphase.

Wenn Sie keinen Rasterisiererstatus angeben, verwendet die Direct3D-Runtime die folgenden Standardwerte für den Rasterisierungsstatus.

State Standardwert
Fillmode D3D12_FILL_MODE_SOLID
CullMode D3D12_CULL_MODE_BACK
FrontCounterClockwise FALSE
DepthBias 0
DepthBiasClamp 0.0f
SlopeScaledDepthBias 0.0f
DepthClipEnable TRUE
MultisampleEnable FALSE
AntialiasedLineEnable FALSE
ForcedSampleCount 0
ConservativeRaster D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF
 
Hinweis Wenn Sie MultisampleEnable auf FALSE festlegen, werden für die Featureebenen 9.1, 9.2, 9.3 und 10.0 alle Punkte, Linien und Dreiecke ohne Antialiasing gerendert, auch für Renderziele mit einer Stichprobenanzahl von mehr als 1. Für Featureebenen 10.1 und höher hat die Einstellung von MultisampleEnable keine Auswirkungen auf Punkte und Dreiecke in Bezug auf MSAA und wirkt sich nur auf die Auswahl des Zeilenrenderingalgorithmus aus, wie in dieser Tabelle gezeigt:
 
Zeilenrenderalgorithmus MultisampleEnable AntialiasedLineEnable
Alias FALSE FALSE
Alpha antialiased FALSE TRUE
Viereck TRUE FALSE
Viereck TRUE TRUE
 

Die Einstellungen der MultisampleEnable - und AntialiasedLineEnable-Member gelten nur für Multisample Antialiasing-Ziele (MSAA) (Renderziele mit einer Stichprobenanzahl von mehr als 1). Aufgrund der Unterschiede im Verhalten auf Featureebene und solange Sie keine Linienzeichnungen ausführen oder nichts dagegen haben, dass Linien als Viereck gerendert werden, empfiehlt es sich, MultisampleEnable immer auf TRUE festzulegen, wenn Sie auf MSAA-Renderzielen rendern.

Anforderungen

Anforderung Wert
Header d3d12.h

Weitere Informationen

CD3DX12_RASTERIZER_DESC

Konservative Rasterung

Kernstrukturen

Geordnete Rasterizeransichten