I. Introduction▲
Cette série explique comment programmer ses propres effets visuels grâce aux shaders.
Vous pouvez retrouver les autres épisodes de cette série dans le sommaire dédié.
II. Vidéo▲
Unity - Écrire votre premier shader
III. Résumé▲
La fonction pour le vertex shader de la passe est déterminée par la ligne :
#pragma vertex vert
De même, la fonction pour le fragment shader de la passe est déterminée par la ligne :
#pragma fragment frag
Contrairement au C#, les shaders n'ont pas de mécanisme d'héritage.
L'inclusion du fichier UnityCG.cginc vous donne l'accès à des fonctions vous facilitant l'écriture des shaders.
Les types float2 et float4 décrivent des conteneurs englobant deux et quatre nombres à virgule flottante. Les structures appdata et v2f décrivent les données qui proviennent de la scène et les données échangées entre le vertex shader et le fragment shader. Pour chaque variable, une description lui est associée afin que le moteur Unity sache quel est son but et ainsi pouvoir l'utiliser correctement.
Le vertex shader reçoit les données de la scène et, après traitement, transfère les données au fragment shader. C'est exactement ce que la fonction vert() fait en acceptant comme paramètre la structure appdata et en retournant la structure v2f.
Le but du vertex shader est de transformer les coordonnées provenant de la scène afin de déterminer où l'objet sera dessiné à l'écran. Pour les sommets des modèles 3D, les transformations sont effectuées dans la fonction Unity UnityObjectToClipPos(). Les coordonnées de texture reçoivent aussi une transformation afin de prendre en compte les paramètres de texture définis dans l'éditeur.
IV. Ressources▲
Vous pouvez télécharger les ressources pour ce projet ici.
V. Commenter▲
Vous pouvez commenter et donner vos avis dans la discussion associée sur le forum.