D3D11_RASTERIZER_DESC1-Struktur (d3d11_1.h)
Syntax
typedef struct D3D11_RASTERIZER_DESC1 {
D3D11_FILL_MODE FillMode;
D3D11_CULL_MODE CullMode;
BOOL FrontCounterClockwise;
INT DepthBias;
FLOAT DepthBiasClamp;
FLOAT SlopeScaledDepthBias;
BOOL DepthClipEnable;
BOOL ScissorEnable;
BOOL MultisampleEnable;
BOOL AntialiasedLineEnable;
UINT ForcedSampleCount;
} D3D11_RASTERIZER_DESC1;
Member
FillMode
Typ: D3D11_FILL_MODE
Bestimmt den Füllmodus, der beim Rendern verwendet werden soll.
CullMode
Typ: D3D11_CULL_MODE
Gibt an, dass Dreiecke, die der angegebenen Richtung zugewandt sind, nicht gezeichnet werden.
FrontCounterClockwise
Typ: BOOL
Gibt an, ob ein Dreieck nach vorne oder nach hinten ausgerichtet ist. Bei TRUE wird ein Dreieck als frontseitig betrachtet, wenn seine Scheitelpunkte auf dem Renderziel gegen den Uhrzeigersinn und umgekehrt gelten, wenn sie im Uhrzeigersinn sind. Bei FALSE ist das Gegenteil wahr.
DepthBias
Typ: INT
Tiefenwert, der einem bestimmten Pixel hinzugefügt wird. Informationen zu Tiefenverzerrungen finden Sie unter Tiefenvoreingenommenheit.
DepthBiasClamp
Typ: FLOAT
Maximale Tiefenverzerrung eines Pixels. Informationen zu Tiefenverzerrungen finden Sie unter Tiefenvoreingenommenheit.
SlopeScaledDepthBias
Typ: FLOAT
Skalar auf der Neigung eines bestimmten Pixels. Informationen zu Tiefenverzerrungen finden Sie unter Tiefenvoreingenommenheit.
DepthClipEnable
Typ: BOOL
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.
ScissorEnable
Typ: BOOL
Gibt an, ob scherssor-rectangle culling aktiviert werden soll. Alle Pixel außerhalb eines aktiven Scherenrechtecks werden gekullt.
MultisampleEnable
Typ: BOOL
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
Typ: BOOL
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, 2, 4, 8 und optional 16. 0 gibt an, dass die Stichprobenanzahl nicht erzwungen wird.
- Binden Sie keine Tiefenschablonenansichten.
- Deaktivieren Sie tiefentests.
- Stellen Sie sicher, dass der Shader keine Tiefe ausgibt.
- Wenn Sie renderzielbezogene Ansichten (D3D11_BIND_RENDER_TARGET) 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. Id3D11ShaderReflection::IsSampleFrequencyShader gibt daher FALSE zurück.
Hinweise
Der Rasterisierungszustand definiert das Verhalten der Rasterizerphase. Um ein Rasterizer-State-Objekt zu erstellen, rufen Sie ID3D11Device1::CreateRasterizerState1 auf. Um den Rasterisiererstatus festzulegen, rufen Sie ID3D11DeviceContext::RSSetState auf.
Wenn Sie keinen Rasterisiererstatus angeben, verwendet die Direct3D-Runtime die folgenden Standardwerte für den Rasterisierungsstatus.
State | Standardwert |
---|---|
Fillmode | Basis |
CullMode | Zurück |
FrontCounterClockwise | FALSE |
DepthBias | 0 |
SlopeScaledDepthBias | 0.0f |
DepthBiasClamp | 0.0f |
DepthClipEnable | TRUE |
ScissorEnable | FALSE |
MultisampleEnable | FALSE |
AntialiasedLineEnable | FALSE |
ForcedSampleCount | 0 |
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
Unterstützte Mindestversion (Client) | Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2012 und Plattformupdate für Windows Server 2008 R2 [Desktop-Apps | UWP-Apps] |
Kopfzeile | d3d11_1.h |