Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Liens connexes

Dépêche modérée par

: Cg : le « C » pour carte graphique est arrivé

Posté par Mathieu Millet (page perso, ). Modéré le 17 juin 2002.
nVidia vient de présenter « son » nouveau langage de programmation Cg (C graphique).

Ce langage qui propose un niveau d'abstraction supplémentaire par rapport à DirectX ou OpenGL, permet d'écrire du code (notamment pour la programmation des shaders) qui peut être portable sur tout type de processeur graphique (ATI, nVidia, Matrox) et toute API graphique (OpenGL, DirectX...). Il faut ensuite avoir le compilateur pour genérer le code compatible avec l'architecture et l'API.

Les spécifications de ce langage sont ouvertes et un compilateur de référence devrait bientôt être disponible. Libre aux constructeurs/éditeurs de proposer un compilateur pour son architecture.

NdA : si j'ai bien compris, avant Cg, la programmation de certaines fonctions graphiques (comme les shaders) doit être fait en assembleur pour chaque processeur graphique et chaque API.

> Lire la dépêche (40 commentaires, moyenne: 12,3).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

bon a premiere vue:

Posté par kael () le 17/06/2002 à 10:35. (lien). Évalué à 42.

c'est une norme ouverte
ca a pas l'air d'etre propre a un fabricant
c'est compatible avec openGL
ca existe sous linux
donc je dirait que ca a pas l'air mal.

bon le seul truc c'est que ca a été developpé principalement pour faire des jeux enfin quand on voi la liste des boites qui ont données leurs avis...
enfin je reste un peu mefiant quand meme, nvidia [cpaslibre] :-)

Y a quand meme des trucs qui font peur...

Posté par Brundle Mouche () le 17/06/2002 à 10:51. (lien). Évalué à 56.

Au premier abord on voit des mots comme "ouvert" ou "libres aux autres frabicants", et pis on lit la FAQ:
- "developed by NVIDIA in close collaboration with Microsoft": Ne faisont pas de l'anti-redmond primaire comme on en voit trop souvent sur DLFP, mais on ne les a jamais vu aller dans le sens du libre et de l'open.
- "Who maintains the Cg Language Specification: NVIDIA maintains the Cg Language Specification and will continue to work with Microsoft to maintain compatibility with the DirectX High Level Shading Language (HLSL)": mouais, ca a l'air vachement ouvert aux concurents ces specifs !

Cg est une couche d'abstaraction sur openGl et DirectX. Ce que ca m'inspire: Nvidia et Microsoft veulent faire disparaitre les specificites d'OpenGl et de ddirectX au profit de leur nouvelle implementation, dont les spes sont editees par Nvidia. Donc on passe du closed direct x chez Microsoft au closed qui englobe directx ET opengl chez Nvidia qui roule main dans la main avec microsoft. Donc c'est TRES INQUIETANT, et je pense que c'est une belle manoeuvre pour remettre en cause l'existence d'openGL en tant qu'alternative a direct X.

Gardez a l'esprit la premiere question de la FAQ: "developed by NVIDIA in close collaboration with Microsoft". C'est du closed !!!

Les shaders, comment ça marche ?

Posté par Franck Guillaud () le 17/06/2002 à 11:15. (lien). Évalué à 43.

Grosso Modo, un Shader est un programme exécuté par le GPU qui agit sur les informations traversant le pipeline graphique, informations envoyées par le "programme utilisateur". Ces infos ça peut être des points 3D, des données de couleurs, des données textures, etc... Par exemple en sortie de pipeline vous avez un pixel à dessiner. En utilisant les infos sur la position de la lumière, sur la normale à la surface plus des infos de textures vous pouvez écrire un petit shader qui va assombrir ou éclaircir le pixel suivant la position de la plus ou moins rasante lumière : c'est du bump mapping. Et on peut faire vachement plein de trucs sympas, y'a qu'a voir les démos sur leur site.

L'avantage de Cg, c'est qu'il permet de s'abstraire de pipeline utilisé (Direct X, OpenGL avec GPU ATI ou NVidia). Le programme qui utilise Cg sera accompagné d'un runtime qui compile les shaders "just in time" pour l'API utilisée.

C'est un gros progrès pour les développeurs de 3D temps réel, qui finalement n'auront plus trop à ce soucier de savoir si ils écrivent pour OpenGL ou DirectX : voilà un bon point pour la portabilité.

Et si NVidia ne fournit pas des solutions totalement libres pour Linux, n'oubliez pas qu'ils ont toujours supportés cet OS. NVidia n'est pas parfait, mais ils tirent la 3D vers le haut et Linux avec. Moi je dis "chapeau".

Réponse de Andrew Richards de Codeplay

Posté par sheepkiller () le 17/06/2002 à 12:32. (lien). Évalué à 3.

voila l'URL :
http://www.theregister.co.uk/content/54/25732.html(...)

PS : -1 car c'est assez laconique :)

j'ai du mal à voir ce qui vous gêne

Posté par Éric (Jabber id, page perso, ) le 17/06/2002 à 12:36. (lien). Évalué à 16.

Qu'est ce que je vois comme reproches plus haut :

- ca vient de nvidia :
vous trouvez ca négatif vous qu'un constructeur assure une facon de mieux utiliser ses produits ?
Meme si la chose était limité à directX et à leurs cartes je trouverai ca bien, ca ne donne qu'un plus, personne n'est obligé d'utiliser ca (mais ca va simplifier la vie de pas mal de monde)

- coopération avec MS :
Ils veulent que ca puisse s'interfacer avec directX non ? ca me semble tout à fait logique dans cette optique de coopérer avec le mainteneur des spec directX : MS
A vrai dire ca serait une non coopération avec MS qui me gênrait

- pas ouvert :
Hum, les spec sont ouvertes, ils acceptent (ils écrivent meme "encourager") les implémentations externes notament une opensource. On peut regreter que leur compilo à eux soit fermé mais ils jouent franc jeu
Ca s'interface avec opengl et directX (qui sont les deux API utilisées en général), ils veulent etre portable pour autre chose que leurs produits (produits concurents) .. ca me semble etre tout à fait honnete et de bonne initiative.

- les spec restent controlées par nvidia :
Bah, imaginons que moi je créé un langage parce que je pense qu'il est necessaire, si j'en ai les moyens je vais preferer en garder le controle pour éviter que quelqu'un fasse des choix qui me semblent mauvais. Sun a fait pareil, et ca me parait normal (quel gain ils auraient à risquer de voir déraper leur langage n'importe comment dans le futur ?)
Et puis ils auraient lancé une structure type ANSI pour s'en occuper vous auriez dit que ca reviendrait au meme vu que ca serait "controlé" par nvidia.

Franchement mis à part le fait de mettre leur compil en opensource il font tout pour rester le plus ouvert possible.
Ca n'empeche pas la possibilité de dérapages mais je vois comprend mal les reproches sur la coopération avec MS, le fait qu'ils détiennent l'évolution de leur langage ....

Revenir en haut de page