Nvidia GeForce GTX 1080, le premier GPU 16nm en test !

Publié le 17/05/2016 (Mise à jour le 24/05/2016) par
Imprimer

Pascal et le SMPE pour la VR et le surround

Avec les GPU Maxwell, Nvidia a introduit une fonctionnalité dénommée Multi Projection Acceleration. Elle est à la base de VXGI et VXAO ainsi que du Multi-Resolution Shading qui permet d'optimiser les performances en VR en réduisant la résolution sur les côtés. Le moteur de projection multiple de Maxwell était cependant limité dans le sens où toutes les projections devaient se faire à partir du même point de vue (le VXAO et le VXGI représentant une approche particulière qui peut s'y rattacher).

Présent en partie dans le Polymorph Engine et en partie dans le Rasterizer, le SMPE (Simultaneous Multi Projection Engine) des GPU Pascal va plus loin. Cette unité est capable de générer plusieurs projections du flux de géométrie jusqu'à 16, voire jusqu'à 32 dans le cas d'un rendu stéréoscopique.

Quelle utilité ? Le meilleur exemple est un rendu VR simple : au lieu de calculer séparément l'image pour chaque oeil, la géométrie peut n'être traitée qu'une fois et projetée ensuite directement, en une seule passe, dans les 2 images. Le SMPE se charge automatiquement de tout cela et de dédoubler les triangles qui doivent l'être. Suivant la complexité de la géométrie, des vertex shaders, de la tessellation, les gains peuvent être plus ou moins conséquents. Cela ne change par contre rien au niveau du calcul des pixels.

Mais le SMPE ne s'arrête pas là et permet également de faire du Lens Matched Shading. Grossièrement il s'agit d'aller encore plus loin que le Multi Resolution Shading en utilisant plusieurs viewports pour simuler une image incurvée qui se rapproche le plus possible de l'image qui sera affichée après déformation pour être adaptée à la lentille. Voici ce que cela donne en image :


[ Rendu classique ]  [ Lens Matched Shading ]  

Sur la seconde image, on peut deviner à travers la silhouette de l'image rendue les 4 viewports. En retenant une haute qualité, 33% de pixels en moins sont calculés pour un résultat final identique ou très proche après déformation. De base, dans le cas de l'Oculus Rift par exemple, des images de 2.1 MPixels sont déformées (warping) pour pouvoir être vue correctement à travers les lentilles du casque. Après cette déformation, la résolution effective n'est plus que de 1.4 MPixels et le SMPE autorise donc un débit effectif de pixels 50% supérieur.

De quoi autoriser des gains conséquents en VR mais il faudra pour cela un support spécifique de la part des applications. A noter qu'il est possible d'utiliser plus de 4 viewports pour simuler un écran incurvé plus précis, mais cela apporte peu de bénéfices par rapport au coût engendré. Exploiter plus de 4 viewports pourra par contre avoir plus de sens dans le cadre des CAVE (cave automatic virtual environment) ou des dômes.

L'autre utilité concerne les écrans larges incurvés ainsi que les systèmes surrounds inclinés de manière à simuler un tel écran incurvé comme c'est généralement le cas. Actuellement, le rendu se fait assez naïvement en faisant comme si le système d'affichage était une surface plane, ce qui implique un champ de vision trop étroit et des erreurs de projections qui s'amplifient aux extrémités.


[ Rendu surround classique ]  [ et avec correction du champ de vision ]  

Le SMPE permet d'opérer une projection différente pour chaque écran ou pour chaque zone de l'écran large incurvé de manière à ce que le champ de vision soit correct par rapport à l'angle d'inclinaison et par rapport à la position de l'utilisateur. Nvidia prépare un utilitaire qui permettra de configurer ces systèmes.

Vos réactions

Top articles