structure D3D12_VIEW_INSTANCING_DESC (d3d12.h)
Spécifie les paramètres utilisés lors de la configuration de l’instanciation de l’affichage.
typedef struct D3D12_VIEW_INSTANCING_DESC {
UINT ViewInstanceCount;
const D3D12_VIEW_INSTANCE_LOCATION *pViewInstanceLocations;
D3D12_VIEW_INSTANCING_FLAGS Flags;
} D3D12_VIEW_INSTANCING_DESC;
ViewInstanceCount
Spécifie le nombre de vues à utiliser, jusqu’à D3D12_MAX_VIEW_INSTANCE_COUNT.
pViewInstanceLocations
Adresse d’un emplacement de mémoire qui contient la vue ViewInstanceCount instance structures d’emplacement qui spécifient l’emplacement de la fenêtre d’affichage/du ciseau et affichent les détails de la cible de chaque instance d’affichage.
Flags
Configure l’instanciation d’affichage avec des options supplémentaires.
L’instanciation d’affichage est déclarée dans un fournisseur de services à l’aide de cette structure. Le nombre de instance d’affichage est défini dans l’authentification unique pour permettre l’optimisation de l’ensemble du pipeline en fonction du nombre de vues.
L’instanciation d’affichage est désactivée lorsqu’elle n’est pas déclarée dans le bloc d’alimentation ou lorsque ViewInstanceCount a la valeur 0. Lorsqu’il est désactivé, le rendu se comporte comme si l’instanciation d’affichage était activée et ViewInstanceCount était défini sur 1 ; Les nuanceurs voient uniquement la valeur 0 dans SV_ViewID et une seule vue instance est générée. Cela permet aux nuanceurs qui sont conscients de l’instanciation de vue d’être toujours utilisés dans les osS qui le désactivent. Certains adaptateurs peuvent prendre en charge le modèle de nuanceur 6.1 (qui expose SV_ViewID), mais pas l’instanciation d’affichage ; ces adaptateurs doivent toujours prendre en charge les nuanceurs qui entrent SV_ViewID dans les objets de service qui déclarent ViewInstanceCount comme 0 ou 1.
Le nuanceur avant la rastérisation peut générer des valeurs SV_RenderTargetArrayIndex et SV_ViewportArrayIndex qui n’ont pas besoin de dépendre de SV_ViewID. Pour calculer l’index effectif final de la fenêtre d’affichage et de la cible de rendu où les primitives seront envoyées, ces valeurs, lorsqu’elles sont présentes, sont ajoutées aux valeurs ViewportArrayIndex et RenderTargetArrayIndex de la vue instance emplacements déclarés dans le psO. Si un index calculé est hors limites (autrement dit, lorsque l’index est supérieur au nombre d’éléments cibles de fenêtre d’affichage ou de rendu dans leurs tableaux respectifs), l’index effectif devient 0.
Pour les nuanceurs qui sélectionnent dynamiquement la fenêtre d’affichage ou affichent les index cibles, une application peut définir tous les emplacements d’affichage instance déclarés dans le psO sur une valeur unique (par exemple, 0) pour agir comme un index de base uniforme auquel les valeurs SV_RenderTargetArrayIndex et SV_ViewportArrayIndex sélectionnées dynamiquement sont ajoutées.
Condition requise | Valeur |
---|---|
En-tête | d3d12.h |