Surface shader built-in input variables

I’m investigating how shaders work in Unity. It appears that there are a bunch of built-in variables that could be used as vertex shader inputs. The ones that I’ve found

  • viewDir
  • lightDir
  • vlight
  • uv_MainTex
  • uv_BumpMap
  • uv_EmissionMap

Viewing debug version of my surface shaders reveals that engine copies the values with matching names. The problem is that I can’t find the full list of those variables - neither in documentation nor in include files. So where is it ?

surface shaders:

Yes. It is also my same problem and this is actual in 2018 as well.

Additional values that can be put into Input structure:

float3 viewDir - will contain view direction, for computing Parallax effects, rim
lighting etc.

float4 with COLOR semantic - will contain interpolated per-vertex color.

float4 screenPos - will contain screen space position for reflection or
screenspace effects.

float3 worldPos - will contain world space position.

float3 worldRefl - will contain world reflection vector if surface shader does
not write to o.Normal. See Reflect-Diffuse shader for example.

float3 worldNormal - will contain world normal vector if surface shader does
not write to o.Normal.

Source:
https://shadowmint.gitbooks.io/unity-material-shaders/content/support/input_structure.html