Search code examples
unity-game-engineshadercg

What does #pragma vertex vert_img do in a Unity shader?


While I built an idea of what vert_img does by observing results, I would like to read a more theoretical explanation that I couldn't find online.

For context, I found this vert_img in some shaders that use floating point textures to compute the dynamics of a particle system.

Edit: the confusing thing is that it's declared even if no vertex shaders are defined.


Solution

  • As I just found out, vert_img is a minimal vertex shader that is defined in UnityCG.cginc

    v2f_img vert_img( appdata_img v )
    {
        v2f_img o;
        o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
        o.uv = v.texcoord;
        return o;
    }
    

    Its purpose is to forward the vertex data to the fragment shader. Handy!