Share via


CD3D11_RASTERIZER_DESC1-Struktur (d3d11_1.h)

Hinweis Diese Struktur wird von der Direct3D 11.1-Runtime unterstützt, die unter Windows 8 und höheren Betriebssystemen verfügbar ist.
 
Beschreibt den Rasterizerstatus.

Syntax

struct CD3D11_RASTERIZER_DESC1 : D3D11_RASTERIZER_DESC1 {
  void CD3D11_RASTERIZER_DESC1();
  void CD3D11_RASTERIZER_DESC1(
    const D3D11_RASTERIZER_DESC1 & o
  );
  void CD3D11_RASTERIZER_DESC1(
    CD3D11_DEFAULT unnamedParam1
  );
  void CD3D11_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
  );
  void ~CD3D11_RASTERIZER_DESC1();
};

Vererbung

Die CD3D11_RASTERIZER_DESC1-Struktur implementiert D3D11_RASTERIZER_DESC1.

Member

void CD3D11_RASTERIZER_DESC1()

void CD3D11_RASTERIZER_DESC1( const D3D11_RASTERIZER_DESC1 & o)

void CD3D11_RASTERIZER_DESC1( CD3D11_DEFAULT unnamedParam1)

void CD3D11_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)

void ~CD3D11_RASTERIZER_DESC1()

Hinweise

AntialiasedLineEnable

Typ: BOOL

Gibt an, ob das Zeilen antialiasing aktiviert werden soll; Gilt nur, wenn das Zeichnen von Linien ausgeführt wird und MultisampleEnablefalse ist. Weitere Informationen zu diesem Member finden Sie unter Hinweise.

CullMode

Typ: D3D11_CULL_MODE

Gibt an, dass Dreiecke, die der angegebenen Richtung zugewandt sind, nicht gezeichnet werden.

DepthBias

Typ: INT

Tiefenwert, der einem bestimmten Pixel hinzugefügt wurde. Informationen zur Tiefenverzerrung finden Sie unter Tiefenverzerrung.

DepthBiasClamp

Typ: FLOAT

Maximale Tiefenabweichung eines Pixels. Informationen zur Tiefenverzerrung finden Sie unter Tiefenverzerrung.

DepthClipEnable

Typ: BOOL

Gibt an, ob das Beschneiden 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, schneidet 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 den Z-Clipping (d. a. den letzten Schritt im vorherigen Algorithmus). Die Hardware führt jedoch weiterhin den Clipping "0 < w" aus. Wenn das Z-Clipping deaktiviert ist, kann es zu einer falschen Tiefenreihenfolge auf Pixelebene kommen. Wenn das Z-Clipping jedoch deaktiviert ist, werden Schablonenschattenimplementierungen vereinfacht. Mit anderen Worten, Sie können eine komplexe Sonderfallbehandlung für Geometrie vermeiden, die über die Zurückschneideebene hinausgeht.

Fillmode

Typ: D3D11_FILL_MODE

Bestimmt den Füllmodus, der beim Rendern verwendet werden soll.

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.

Hinweis Wenn Sie mit ForcedSampleCount rendern möchten, die auf 1 oder höher festgelegt ist, müssen Sie die folgenden Richtlinien befolgen:
  • Binden Sie keine Tiefenschablonenansichten.
  • Deaktivieren Sie tiefentests.
  • Stellen Sie sicher, dass der Shader keine Tiefe ausgibt.
  • Wenn Renderzielansichten gebunden sind (D3D11_BIND_RENDER_TARGET) und ForcedSampleCount größer als 1 ist, stellen Sie sicher, dass jedes Renderziel nur über ein einziges Beispiel verfügt.
  • Verwenden Sie den Shader nicht bei der Stichprobenhäufigkeit. Id3D11ShaderReflection::IsSampleFrequencyShader gibt daher FALSE zurück.
Andernfalls ist das Renderingverhalten nicht definiert. Informationen zum Konfigurieren der Tiefenschablone finden Sie unter Konfigurieren Depth-Stencil Funktionalität.
 

FrontCounterClockwise

Typ: BOOL

Gibt an, ob ein Dreieck nach vorne oder hinten ausgerichtet ist. Bei TRUE gilt ein Dreieck als frontseitig, wenn seine Scheitelpunkte auf dem Renderziel gegen den Uhrzeigersinn und als rückwärts gerichtet gelten, wenn sie im Uhrzeigersinn sind. Wenn FALSE, ist das Gegenteil wahr.

MultisampleEnable

Typ: BOOL

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

ScissorEnable

Typ: BOOL

Gibt an, ob das Scheren-Rechteck-Culling aktiviert werden soll. Alle Pixel außerhalb eines aktiven Scherenrechtecks werden gekullt.

SlopeScaledDepthBias

Typ: FLOAT

Skalar auf der Neigung eines bestimmten Pixels. Informationen zur Tiefenverzerrung finden Sie unter Tiefenverzerrung.

Der Rasterizerzustand definiert das Verhalten der Rasterizerphase. Um ein rasterizer-state-Objekt zu erstellen, rufen Sie ID3D11Device1::CreateRasterizerState1 auf. Rufen Sie ID3D11DeviceContext::RSSetState auf, um den Rasterizerstatus festzulegen.

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

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
Hinweis Wenn Sie MultisampleEnable auf FALSE festlegen, rendert die Laufzeit für die Featureebenen 9.1, 9.2, 9.3 und 10.0 alle Punkte, Linien und Dreiecke ohne Antialiasing, 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:
 
Zeilenrenderingalgorithmus MultisampleEnable AntialiasedLineEnable
Alias FALSE FALSE
Alpha antialiased FALSE TRUE
Viereck TRUE FALSE
Viereck TRUE TRUE
  Die Einstellungen der Elemente MultisampleEnable und AntialiasedLineEnable gelten nur für MSAA-Renderziele (Multisample Antialiasing) (d. a. Renderziele mit einer Stichprobenanzahl von mehr als 1). Aufgrund der Unterschiede beim Verhalten auf Featureebene und solange Sie keine Linienzeichnung durchführen oder es ihnen nicht stört, dass Linien als Quadrilaterale gerendert werden, wird empfohlen, MultisampleEnable immer auf TRUE festzulegen, wenn Sie auf MSAA-Renderzielen rendern.

Anforderungen

Anforderung Wert
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

Weitere Informationen

Kernstrukturen