Affichages de l’ordre du rastériseur
Les vues triées par ratériseur permettent au code de nuanceur de pixels de marquer les liaisons UAV avec une déclaration qui modifie les exigences normales pour l’ordre des résultats du pipeline graphique pour les UAV. Cela permet aux algorithmes Order Independent Transparency (OIT) de fonctionner, ce qui donne de meilleurs résultats de rendu lorsque plusieurs objets transparents sont alignés les uns avec les autres dans une vue.
- Vue d’ensemble
- Détails de l’implémentation
- résumé de l’API
- rubriques connexes
Aperçu
Les pipelines graphiques standard peuvent avoir des difficultés à composer correctement plusieurs textures qui contiennent de la transparence. Les objets tels que les clôtures de fil, la fumée, le feu, la végétation et le verre coloré utilisent la transparence pour obtenir l’effet souhaité. Des problèmes se produisent lorsque plusieurs textures qui contiennent la transparence sont alignées les unes avec les autres (fumée devant une clôture devant un bâtiment en verre contenant la végétation, par exemple). Les vues triées par ratériseur permettent aux algorithmes OIT sous-jacents d’utiliser les fonctionnalités du matériel pour tenter de résoudre correctement l’ordre de transparence. La transparence est gérée par le nuanceur de pixels.
Les vues triées par ratériseur permettent au code de nuanceur de pixels de marquer les liaisons UAV avec une déclaration qui modifie les exigences normales pour l’ordre des résultats du pipeline graphique pour les UAV.
Les ROV garantissent l’ordre des accès UAV pour toute paire d’appels de nuanceur de pixels qui se chevauchent. Dans ce cas, le « chevauchement » signifie que les appels sont générés par les mêmes appels de dessin et partagent la même coordonnée de pixels en mode d’exécution de fréquence de pixels, ainsi que le même pixel et la même coordonnée d’exemple en mode de fréquence d’échantillonnage.
L’ordre dans lequel les accès ROV qui se chevauchent des appels de nuanceur de pixels sont exécutés est identique à l’ordre dans lequel la géométrie est envoyée. Cela signifie que, pour les appels de nuanceur de pixels qui se chevauchent, les écritures ROV effectuées par un appel de nuanceur de pixels doivent être lues par un appel ultérieur et ne doivent pas affecter les lectures par un appel précédent. Les lectures ROV effectuées par un appel de nuanceur de pixels doivent refléter les écritures par un appel précédent et ne doivent pas refléter les écritures par un appel suivant. Cela est important pour les UAV, car elles sont explicitement omises à partir des garanties d’invariance de sortie définies normalement par l’ordre fixe des résultats du pipeline graphique.
Détails de l’implémentation
Les vues triées par ratériseur (ROVs) sont déclarées avec les nouveaux objets HLSL (High Level Shader Language) suivants et sont uniquement disponibles pour le nuanceur de pixels :
RasterizerOrderedBuffer
RasterizerOrderedByteAddressBuffer
RasterizerOrderedStructuredBuffer
RasterizerOrderedTexture1D
RasterizerOrderedTexture1DArray
RasterizerOrderedTexture2D
RasterizerOrderedTexture2DArray
RasterizerOrderedTexture3D
Utilisez ces objets de la même manière que d’autres objets UAV (tels que RWBuffer
etc.).
Résumé de l’API
Les ROV sont une construction HLSL uniquement qui applique une sémantique de comportement différente aux UAV. Toutes les API pertinentes pour les UAV sont également pertinentes pour les ROV. Notez que la méthode, les structures et la classe d’assistance suivantes référencent le rastériseur :
- D3D11_RASTERIZER_DESC2 : structure contenant la description du rastériseur, notant la classe d’assistance CD3D12_RASTERIZER_DESC2 pour la création de descriptions de rastériseur.
-
D3D11_FEATURE_DATA_D3D11_OPTIONS2 : structure contenant le
ROVsSupported
booléen, indiquant la prise en charge. - ID3D11Device ::CheckFeatureSupport : méthode pour accéder aux fonctionnalités prises en charge.
Rubriques connexes
-
fonctionnalités Direct3D 11.3
-
modèle de nuanceur 5.1