Technologie : La précision
Afin de ne pas usurper le terme et les technologies « Cine FX »,
le GeForce FX se devait de se doter d’une architecture qui laisse
avant tout place aux impératifs de qualité, qui restent
bien évidemment le principal critère empêchant les
développeurs d’accéder à des standards similaires
à ceux disponibles pour l’industrie du cinéma aujourd’hui.
Le point clef ? L’implémentation de pipelines de 128 bits
pour le process des pixels. En permettant une précision de 32 bits
en virgule flottante pour les pixels, ceci va permettre aux développeurs
d’utiliser des textures d’une largeur supérieure à
1024*1024 pixels, ce qui va se traduire par le déluge d’effets
volumétriques d’une qualité encore jamais vue.
Autre effet qui bénéficiera largement de cette augmentation
de précision : le bump mapping, entre autres largement utilisé
pour rendre l’eau dans les jeux (notamment le Dot Product et l’Environment
Mapped Bump Mapping). Manque de chance, nVidia a utilisé ce screenshot
pour illustrer le gain de qualité occasionné :
Oui, vous l’aurez reconnu, cette image est issue du jeu Morrowind.
Or, ce jeu, malgré sa jeunesse, n’est ni optimisé
spécialement pour l’architecture 128 bits du GeForce FX,
ni pour les 96 bits de la Radeon 9700 Pro puisque le bump mapping utilisé,
de type environment mapped, ce qui met d’ailleurs en évidence
un tout autre problème du GeForce FX, mais nous y reviendront plus
tard.
Entre autres choses, sachez que le nouveau chip d’nVdia comprend
un nouveau format pour les textures qui permet de corriger le gamma pour
chaque canal – rouge, vert, bleu et alpha – dans n’importe
quelle combinaison, ce qui participe également de l’augmentation
de la palette d’effets reproduisibles.
Parlons maintenant des buffers d’ombrage fréquemment utilisés
dans les jeux 3D récents, et dont le principe est assez simple,
même si sa mise en œuvre reste assez complexe : l’idée
est de rendre une scène depuis la vue d’une source de lumière,
puis d’enregistrer les informations sur la profondeur en tant que
texture à part entière. La scène est ensuite à
nouveau rendue depuis le point de vue de la caméra cette fois,
et le buffer d’ombrage est comparé aux objets de la scène
: dans le seul cas où les objets seraient derrière l’ombre,
l’ombre est rendue.
Si cette technique est efficace, plusieurs de ses limitations sont directement
imputables à la précision. En effet, et on le comprend aisément,
dans une technique qui fait appel aux nuances sur les ombres, si la qualité
interne du chip n’est pas à même de développer
des nuances de couleurs suffisantes, l’effet sera décevant.
Illustration de ce phénomène :
John Carmack, parlant de ces technologies, tient à peu près
ce propos :
« Ce n’était pas une nécessité il
y a encore un an, où nous étions déjà content
de pouvoir afficher des scènes avec un framerate élevé.
Mais aujourd’hui l’avènement des graphismes modifiés
en temps réel n’a plus rien à voir avec les textures
‘papier peint’, mais revient plutôt à résoudre
de complexes équations d’éclairage pour chaque pixel.
Il n’est plus déraisonnable d’avoir 20 textures différentes
pour calculer la valeur finale de chaque pixel : simple question de précision
et de champ. »
Mais après tout, toutes ces jolies choses sont aussi supportées
par l’architecture du dernier bébé d’ATI me
direz-vous… toutes ? Pas exactement.
En fait, si l’on veut rester objectif, la grosse avancée
d’nVidia sur ce coup vient encore une fois de sa flexibilité,
puisque le GeForce FX va permettre d’utiliser 3 différents
modes de rendu aux développeurs : le 64 bits, le 128 bits, et un
dernier mode ou le 64 bits et le 128 bits sont utilisés en parallèle.
En face de ces trois niveaux de calculs, l’architecture des Radeon
9700 est verrouillée sur du 96 bits au niveau de son architecture
interne, et seulement 96 bits.
Le résultat ?
Si le code à exécuter nécessite un pipeline qui puisse
supporter une précision de 128 bits, celui-ci sera mieux rendu
sur le GeForce FX. Dans le cas d’une précision de 64 bits,
la flexibilité de l’architecture du chip d’nVidia lui
permettra d’être plus rapide car plus adapté, à
bandes passantes équivalentes (même si la Radeon 9700 reste
capable de rendre un résultat en 32, 64 ou 128 bits).
Bien sûr, tout ceci reste assez théorique et en pratique,
les API tiendront compte de ces différences d’architectures
pour rendre au mieux chaque instruction sur chaque carte, mais il est
indéniable que l’architecture de la GeForce FX est plus flexible
sur ce point !