• # Les shaders, comment ça marche ?

    Posté par . En réponse à la dépêche Cg : le « C » pour carte graphique est arrivé. Évalué à 10.

    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".