La transparence indépendante de l’ordre (OIT) est une catégorie de techniques de tramage graphique pour le traitement de la transparence dans une scène 3D, qui ne nécessite pas que la géométrie de rendu soit ordonnée pour la composition alpha.
Description
Généralement, la géométrie 3D avec transparence est rendue en mélangeant (à l’aide de la composition alpha) toutes les surfaces dans un seul tampon (pensez-y comme à une toile). Chaque surface masque la couleur existante et ajoute une partie de sa propre couleur en fonction de sa valeur alpha, une valeur représentant la transmission de la lumière. L’ordre dans lequel les surfaces sont mélangées affecte l’occlusion totale ou la visibilité de chaque surface. Pour obtenir un résultat correct, les surfaces doivent être mélangées de la plus éloignée à la plus proche ou de la plus proche à la plus éloignée, selon l’opération de composition alpha, au-dessus ou en dessous. Il est possible de trier la géométrie, par exemple en triant les triangles par profondeur, mais cela peut prendre beaucoup de temps et ne produit pas toujours une solution (dans le cas d’une géométrie qui se croise ou qui se chevauche), et la mise en œuvre est complexe. Au lieu de cela, la transparence indépendante de l’ordre classifie la géométrie par pixel, après tramage. Pour obtenir des résultats précis, il est nécessaire de stocker tous les fragments avant de les trier et de les composer.
Histoire
Le tampon A est une technique d’infographie introduite en 1984 qui stocke des listes de données de fragments (y compris des informations sur les micro-polygones) par pixel dans un logiciel de tramage, REYES, conçu à l’origine pour l’anti-crénelage mais aussi pour la transparence.
Plus récemment, Depth Peeling (2001) a décrit une technique accélérée par le matériel. En raison des limitations du matériel graphique, la géométrie de la scène devait être rendue plusieurs fois. Un certain nombre de techniques ont suivi, afin d’améliorer les performances du décollement de profondeur, toujours avec la limitation du rendu de nombreuses passes. Par exemple, Dual Depth Peeling (2008).
En 2009, deux fonctionnalités importantes ont été introduites dans le matériel, les pilotes et l’API graphique du GPU, ce qui a permis de capturer et de stocker les données de fragments lors d’une seule passe de rendu de scène, ce qui n’était pas possible auparavant. Il s’agit de la possibilité d’écrire dans une mémoire GPU arbitraire pour les shaders et les opérations atomiques. Ces caractéristiques ont rendu possible une nouvelle classe de techniques OIT qui ne nécessitent pas de nombreuses passes pour rendre la géométrie de la scène.
OIT Exact
L’OIT exacte, par opposition à l’OIT approximative, calcule avec précision la couleur finale, pour laquelle tous les fragments doivent être classés. Pour les scènes très complexes en termes de profondeur, la classification devient un goulot d’étranglement.
L’un des problèmes de l’étape de tri est l’occupation limitée de la mémoire locale, dans ce cas un attribut SIMT lié à la performance et à la latence des opérations cachant les GPU. L’allocation rétroactive de la mémoire (BMA) regroupe les pixels en fonction de leur complexité de profondeur et les trie par lots afin d’améliorer l’occupation et donc les performances sur les pixels de faible complexité de profondeur, dans le contexte d’une scène dont la complexité de profondeur est potentiellement élevée. On a constaté une augmentation globale des performances de l’OIT pouvant aller jusqu’à trois fois.
Le tri est généralement effectué sur un tableau local, mais les performances peuvent être encore améliorées en utilisant la hiérarchie de la mémoire du GPU et en triant sur des registres, de manière similaire à un type de fusion externe, en particulier en conjonction avec BMA.
BIT approximatif
Les techniques d’OIT approximative relâchent la contrainte de la représentation exacte pour fournir des résultats plus rapides. Il est possible d’obtenir de meilleures performances en n’ayant pas à stocker tous les fragments ou en ne classant que partiellement la géométrie. Un certain nombre de techniques permettent également de compresser ou de réduire les données des fragments. Il s’agit notamment des techniques suivantes