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é▲
Par défaut, le contenu du « Unlit Shader » est le suivant :
Shader "Unlit/Hologram"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
    }
    SubShader
    {
        Tags { "RenderType"="Opaque" }
        LOD 100
        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
        // make fog work
            #include "UnityCG.cginc"
            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };
            struct v2f
            {
                float2 uv : TEXCOORD0;
        UNITY_FOG_COORDS(1)
                float4 vertex : SV_POSITION;
            };
            sampler2D _MainTex;
            float4 _MainTex_ST;
            
            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.uv = TRANSFORM_TEX(v.uv, _MainTex);
        UNITY_TRANSFER_FOG(o,o.vertex);
                return o;
            }
            
            fixed4 frag (v2f i) : SV_Target
            {
                // sample the texture
                fixed4 col = tex2D(_MainTex, i.uv);
                // apply fog
        UNITY_APPLY_FOG(i.fogCoord, col);
                return col;
            }
            ENDCG
        }
    }
}La première ligne spécifie où, dans le menu, le shader va apparaître lorsque vous allez l'assigner à un Material.
Le langage utilisé pour écrire un shader s'appelle ShaderLab.
Le premier bloc décrit les propriétés. Elles sont publiques et visibles dans Unity (dans le composant Material). Le second bloc, « SubShader » contient le code du shader ainsi que des informations spécifiques au rendu.
Il est possible d'avoir plusieurs blocs « SubShader » par shader. Vous pouvez ainsi créer des shaders spécifiques pour telle ou telle plateforme.
La structure « appdata » décrit les données reçues de l'application par la carte graphique. De même, « v2f » décrit les données transférées entre le vertex shader et le fragment shader. Les étapes des vertex shader et fragment shader sont définies dans les fonctions vert et frag.
		Le vertex shader va manipuler les sommets du modèle à afficher. Le fragment shader définit la couleur finale des pixels, là où le modèle sera dessiné.
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.






