D3D12_VIEW_INSTANCING_DESC-Struktur (d3d12.h)
Gibt Parameter an, die während der Konfiguration der Ansichtsrefinanzierung verwendet werden.
Syntax
typedef struct D3D12_VIEW_INSTANCING_DESC {
UINT ViewInstanceCount;
const D3D12_VIEW_INSTANCE_LOCATION *pViewInstanceLocations;
D3D12_VIEW_INSTANCING_FLAGS Flags;
} D3D12_VIEW_INSTANCING_DESC;
Member
ViewInstanceCount
Gibt die Anzahl der zu verwendenden Ansichten bis zu D3D12_MAX_VIEW_INSTANCE_COUNT an.
pViewInstanceLocations
Die Adresse eines Speicherspeicherorts, der die Ansicht ViewInstanceCount enthält, instance Standortstrukturen, die den Speicherort des Viewports/Scissors angeben und Zieldetails jeder Ansicht instance rendern.
Flags
Konfiguriert die Ansichtsrefinanzierung mit zusätzlichen Optionen.
Hinweise
Die View-Instancing wird in einem PSO mit dieser Struktur deklariert. Die Ansicht instance Anzahl wird im PSO festgelegt, um die Optimierung der gesamten Pipeline basierend auf der Anzahl der Ansichten zu ermöglichen.
Die View-Instancing ist deaktiviert, wenn sie nicht im PSO deklariert ist oder wenn ViewInstanceCount auf 0 festgelegt ist. Wenn das Rendern deaktiviert ist, verhält sich das Rendern so, als ob die Ansichtsrefinanzierung aktiviert und ViewInstanceCount auf 1 festgelegt ist; Shader sehen nur den Wert 0 in SV_ViewID und nur eine Ansicht, instance erzeugt wird. Dadurch können Shader, die sich der Ansichtsrefinanzierung bewusst sind, weiterhin in PsOs verwendet werden, die sie deaktivieren. Einige Adapter unterstützen möglicherweise das Shadermodell 6.1 (das SV_ViewID verfügbar macht), aber keine Darstellungskorrektur; Diese Adapter müssen weiterhin Shader unterstützen, die SV_ViewID in PsOs eingeben, die ViewInstanceCount als 0 oder 1 deklarieren.
Der Shader vor der Rasterung kann SV_RenderTargetArrayIndex und SV_ViewportArrayIndex Werte ausgeben, die nicht von SV_ViewID abhängen müssen. Um den endgültigen effektiven Index des Viewports und des Renderziels zu berechnen, an dem Primitive gesendet werden, werden diese Werte, sofern vorhanden, den ViewportArrayIndex- und RenderTargetArrayIndex-Werten der Ansicht instance Im PSO deklarierten Speicherorte hinzugefügt. Wenn sich ein berechneter Index außerhalb des Bereichs befindet (d. h. wenn der Index größer ist als die Anzahl der Viewport- oder Renderzielelemente in ihren jeweiligen Arrays), wird der effektive Index zu 0.
Bei Shadern, die den Viewport oder die Renderzielindizes dynamisch auswählen, kann eine Anwendung alle Im PSO deklarierten Ansichts- instance Speicherorte auf einen einzelnen Wert (z. B. 0) festlegen, um als einheitlicher Basisindex zu fungieren, dem die dynamisch ausgewählten SV_RenderTargetArrayIndex- und SV_ViewportArrayIndex-Werte hinzugefügt werden.
Anforderungen
Anforderung | Wert |
---|---|
Header | d3d12.h |