supinfo
Ouverture de  SUPINFO USA à San Francisco en 2008. Des études en informatique en Californie à un tarif abordable ! Inscrivez-vous dès maintenant !
supinfo
Connexion :
Abonnement NewsletterOk
 
NVIDIA G80: Place au GeForce 8800 et à DirectX 10

NVIDIA G80: Place au GeForce 8800 et à DirectX 10

Carte Graphique

Réponses d'experts
Demande de l'aide aux experts de la communauté Clubic
Ça concerne un
Découvrez la zone d'entraide

Les autres nouveautés de DirectX 10 : Plus de tout !

Toujours dans le but de réduire l'occupation processeur engendrée par son API, Microsoft implémente avec DirectX 10 une nouvelle gestion des états et généralise l'utilisation des tampons de constantes. Ces deux fonctions devraient permettre de revenir sur l'une des lacunes de DirectX 9.0, à savoir l'impossibilité d'exécuter des opérations répétitives par lot. Pour contourner cette limitation, les développeurs devaient donc envoyer une succession de commandes pour réaliser des opérations plutôt courantes mais répétitives comme la mise en place d'une texture et son mélange. Avec DirectX 10, les programmeurs ont ainsi accès à cinq nouveaux états d'objets qui capturent l'essentiel des propriétés du pipeline graphique. Les constantes qui sont des valeurs prédéfinies utilisées en tant que paramètres par les programmes d'ombrage, profitent dorénavant d'une mémoire tampon pouvant accueillir un total de 4096 constantes. DirectX 10 comporte plus précisément 16 mémoire tampons de constantes capable chacune d'accueillir 4096 constantes. Toutes les constantes contenues dans le tampon peuvent par ailleurs être mises à jour d'un seul coup d'un seul via une simple commande, réduisant ainsi la consommation processeur de l'API.

NVIDIA GeForce 8800 : DirectX 10 Constant Buffers

L'occupation processeur réduite de DirectX 10 permet de rendre un plus grand nombre d'objets

Des nouveautés au niveau de la gestion des textures sont également à signaler puisque Microsoft fait évoluer le nombre de textures gérées et leur mode d'accès. On passe ainsi de 16 à 128 textures et ceci s'applique également aux Vertex Shaders qui devaient auparavant se contenter d'un maximum de 4 textures ainsi qu'aux nouveaux Geometry Shaders. La résolution des textures a également été améliorée et DirectX 10 gère dorénavant des textures d'une résolution de 8192x8192 pixels. Ce chiffre est à mettre en rapport avec la résolution de texture maximale prise en charge par les puces graphiques DirectX 9.0 : 4096x4096 pixels. Toujours au chapitre des textures, Microsoft introduit les tableaux de textures pour simplifier leur gestion. Liée au Shader Model 4.0, cette fonction permet d'utiliser plusieurs textures par shader et non plus une petite poignée comme c'est le cas avec DirectX 9.0. Sous DirectX 9.0 les développeurs devaient qui plus est créer des atlas de textures dans le seul but de contourner les importants temps de latence induits par le changement de textures.

NVIDIA GeForce 8800 : DirectX 10 Texture Array

Illustration de l'utilisation des tableaux de texture pour des détails accrus

Microsoft profite également de DirectX 10 pour rendre la prise en charge du filtrage FP16 obligatoire tout comme l'accès et le filtrage des shadow map. Et comme un bonheur n'arrive généralement pas seul, les développeurs de Microsoft proposent un nouveau type d'accès aux textures. Baptisée sobrement « load », cette nouvelle instruction permet la récupération d'un texel bien précis en utilisant des coordonnées non normalisées. Cela devrait d'ailleurs permettre d'utiliser les textures pour stocker autre chose que des données en permettant au GPU d'accéder aux données de la même manière qu'un CPU. La fonction MRT de DirectX 9.0 ou Multiple Render Target, se trouve améliorée avec DirectX 10 puisque le nombre de cibles passe de quatre à huit. Rappelons à ce sujet que la fonction MRT permet en une seule passe de générer plusieurs rendus différents.

L'autre évolution notable apportée par la dernière API en date de Microsoft concerne la précision de calcul. Bien que celle-ci reste fixée au format FP32, Microsoft impose de nouvelles contraintes aux fabricants de GPU en évitant que ceux-ci ne gèrent les nombres spéciaux ou la précision des arrondis à leur guise comme c'est le cas avec les générations GeForce 6/7 et Radeon X1000. Microsoft tente donc de rapprocher les GPU de la norme IEEE 754 qui est commune pour les CPU, même si actuellement DirectX 10 n'est pas totalement conforme IEEE 754. À ce changement assez significatif, s'ajoute la gestion totale des entiers 32 bits, en plus de la prise en charge des flottants 32 bits que l'on retrouve déjà dans DirectX 9.0c. Du côté du rendu HDR (High Dynamic Range), DirectX 10 introduit deux nouveaux formats HDR proches du FP16 mais nécessitant un stockage moindre. Le premier format baptisé R11G11B10 est optimisé pour le stockage des textures en virgule flottante avec, comme son nom le suggère, 11 bits pour les composantes rouge et verte et 10 bits pour le bleu. Le second format de rendu HDR est conçu pour être utilisé conjointement avec le Render Target et comme chaque couleur est stockée sur un nombre encore plus restreint de bit, il participe également à réduire les coûts de bande passante élevée habituellement engendré par le rendu HDR.

NVIDIA GeForce 8800 : DirectX 10 Nouveaux formats HDR

Deux nouveaux formats HDR avec DirectX 10

En ce qui concerne l'Instancing, ou Instanciation géométrique en français, c'est-à-dire la possibilité de dessiner plusieurs instances d'un même objet en une seule passe (concrètement le GPU calcule le rendu d'un soldat et en affiche une quinzaine à l'écran), DirectX 10 permet de lever certaines limitations. Par exemple, il n'est plus nécessaire que les objets en question utilisent la même texture grâce au tableau de textures que nous évoquions plus haut. En prime les objets profitant de l'Instancing peuvent utiliser des shaders différents. Dans la pratique l'Instancing version 2.0, comme se plaisent à le décrire certains développeurs, devrait permettre d'éviter d'assister à une multiplication de clones à l'écran pour profiter d'instances se distinguant véritablement les unes des autres.

NVIDIA GeForce 8800 : Instancing

Exemple d'un jeu utilisant l'Instancing pour multiplier le nombre de personnage

Terminons en évoquant la prise en charge de l'anticrénelage dans DirectX 10 et le fait que l'anti-aliasing de type multisampling est toujours optionnel. En attendant DirectX 10.1, qui devrait revenir sur ce point, Microsoft introduit une nouvelle méthode baptisé Alpha to Coverage visant à résoudre les problèmes de crénelage sur les polygones contenant des portions transparentes : ce genre de problème affecte particulièrement les scènes d'extérieur avec les feuillages des arbres ou encore les scènes contenant des grillages. En pratique, l'Alpha to Coverage effectue un rendu des polygones contenant des valeurs moyennement transparentes avec un anticrénelage de type multisample. Il s'agit ici d'une fonctionnalité assez proche du Transparency Antialiasing que proposent ATI et NVIDIA avec les Radeon X1000 et autres GeForce 7.

NVIDIA GeForce 8800 : DirectX 10 Alpha Coverage

DirectX 10 et l'Alpha Coverage

 
Clubic.com
 
Achetez-facile.com
 
Jeuxvideo.fr
 
neteco.com
 
mobinaute.com