nVidia lance le Cg, un langage de programmation 3D
L’absence de langage de programmation spécifique aux processeurs graphiques rend le développement d’un jeu ou d’une animation 3D particulièrement compliqué. En lançant le Cg, l’équivalent du langage C pour le graphisme, nVidia espère « créer un tournant » dans l’univers de la 3D en simplifiant le travail des développeurs. Objectif, rendre aussi proche de la réalité que possible une image 3D et cela en temps réel, bien sûr.
A la pointe de la technologie du traitement graphique avec ses processeurs (GPU), nVidia poursuit ses innovations pour réaliser des images 3D toujours plus proches de la réalité. Cette fois, ce n’est pas une puce mais un langage que met en avant le père des GeForce, le Cg (« C graphique »). « Le Cg est au processeur graphique ce que le langage C est au processeur depuis le 386 », résume Luciano Alibrandi, responsable marketing de nVidia Europe. Autrement dit, un langage destiné à simplifier la programmation des jeux et autres animations 3D « en temps réel », insiste le porte-parole.
Le Cg vise essentiellement à programmer les Shaders, ces morceaux de code liés à décrire la géométrie des formes (Vertex Shaders) et des graphismes (Pixel Shaders). « Un Shader est très compliqué à faire », explique Luciano Alibrandi, « il faut l’écrire en Assembleur et cela autant de fois que de plates-formes auxquelles il est destiné. » Autrement dit, un Shader qui décrit un clignement de l’oeil devra être écrit une fois pour DirectX, une autre fois pour OpenGL, et autant de fois pour Windows, Mac OS, Linux, etc. Avec Cg, le clignement de l’oeil est écrit une unique fois. Ensuite, un compilateur permet d’encoder le programme pour les différents environnements matériels.
Un atout pour la qualité des images
Autre avantage du Cg, sa relative simplicité. Là où un Shader Phong (une boule éclairée par une source de lumière) demande une vingtaine de lignes de code, le Cg n’en nécessite que deux. Surtout, le Cg est proche du C dans son architecture et ne demande au développeur qu’à assimiler des commandes propres et explicites. Cela devrait permettre de concentrer les développements sur la qualité de l’image plus que sur la compatibilité avec la carte graphique ou l’API graphique. Et si DirectX ou OpenGL donnent accès à des Shaders « tout faits », ceux-ci présentent l’inconvénients d’être impersonnels d’un jeu à l’autre, et cela se sent notamment dans les mouvements des personnages. Avec Cg, le développeur pourra personnaliser un mouvement en lui apportant un style propre et, éventuellement, le commercialiser.
Un standard proposé en open source
Pourquoi un tel langage n’a-t-il pas vu le jour plus tôt? Tout simplement parce qu’il nécessite des puces graphiques programmables. Ce qui est le cas depuis les GeForce 3 et Radeon, chez le concurrent ATI, qui pourra pleinement exploiter le Cg. Car nVidia a fait du Cg un standard open source dont les outils de développement sont accessibles publiquement sur le site Developer.nvidia.com. Développé avec la complicité de Microsoft, Cg, ou plutôt le compilateur, se veut entièrement compatible avec les API graphiques DirectX 8 (et, bientôt, 9) et OpenGL ainsi qu’avec toutes les plates-formes du marché : Windows, Linux, Mac OS, Xbox, etc. Cg s’intègre par ailleurs sous forme de plugins pour les ténors de la 3D que sont Maya, 3DS Max, Softimage XSI et Lightwave. Bien entendu, le Cg est particulièrement optimisé pour les puces nVidia.
« Pour accélérer l’usage des cartes graphiques, il fallait un langage », relate Luciano Alibrandi qui ajoute que « le Cg annonce un grand tournant dans le monde de la 3D ». Dans l’esprit des responsables de nVidia, l’idée est d’arriver à une image 3D animée qui sera impossible à distinguer d’une image photographique. A condition toutefois que les puissances des puces suivent. Un langage de programmation ne saurait suffire seul à la création d’image 3D de qualité photo. Et de rêver : « Pour prendre un exemple avec Jurassic Park, le spectateur pourra, à partir de son DVD, s’arrêter sur une scène et se mettre à tourner autour du dinosaure », explique le responsable marketing qui pense que « le Cg ouvre enfin la porte à de vrais films interactifs ». Si la technologie intéressera inévitablement l’industrie du cinéma, l’intérêt reste à prouver du côté du spectateur. Mais c’est un autre débat.