Built-in shader include files

Unity contains several files that can be used by your shader programs to bring in predefined variables and helper functions. This is done by the standard #include directive, e.g.:

    CGPROGRAM
    // ...
    #include "UnityCG.cginc"
    // ...
    ENDCG

Shader include files in Unity are with .cginc extension, and the built-in ones are:

These files are found inside Unity application ({unity install path}/Data/CGIncludes/UnityCG.cginc on Windows, /Applications/Unity/Unity.app/Contents/CGIncludes/UnityCG.cginc on Mac), if you want to take a look at what exactly is done in any of the helper code.

HLSLSupport.cginc

This file is automatically included when compiling shaders. It mostly declares various preprocessor macros to aid in multi-platform shader development.

UnityCG.cginc

This file is often included in Unity shaders to bring in many helper functions and definitions.

Data structures in UnityCG.cginc

Generic helper functions in UnityCG.cginc

Forward rendering helper functions in UnityCG.cginc

These functions are only useful when using forward rendering (ForwardBase or ForwardAdd pass types).

Vertex-lit helper functions in UnityCG.cginc

These functions are only useful when using per-vertex lit shaders ("Vertex" pass type).

Page last updated: 2012-09-04