#ifndef __INTERPOLATORS_INC #define __INTERPOLATORS_INC #include "AutoLight.cginc" struct appdata { float4 vertex : POSITION; float2 uv0 : TEXCOORD0; float2 uv1 : TEXCOORD1; float2 uv2 : TEXCOORD2; float2 uv3 : TEXCOORD3; #if defined(_RAY_MARCHING_BAKED_ORIGINS) float4 color : COLOR; // vertex color #endif float3 normal : NORMAL; float4 tangent : TANGENT; UNITY_VERTEX_INPUT_INSTANCE_ID }; struct v2f { #if defined(_TESSELLATION) float4 tpos : INTERNALTESSPOS; #endif linear noperspective centroid float4 pos : SV_POSITION; float4 uv01 : TEXCOORD0; float4 uv23 : TEXCOORD1; float3 objPos : TEXCOORD2; float3 worldPos : TEXCOORD3; float4 eyeVec : TEXCOORD4; // eyeVec.xyz | fogCoord float3 normal : TEXCOORD5; float4 tangent : TEXCOORD6; UNITY_LIGHTING_COORDS(7,8) // TODO figure out some metaprogramming or preprocessor to better allocate optional texcoords :( #if defined(_VERTEX_DEFORMATION_FRAGMENT_NORMALS) || \ defined(_VERTEX_DEFORMATION_TESSELLATION) || \ defined(_IMPOSTORS) && defined(_INSTANCE_TEXTURE_OFFSET) float3 objPos_orig : TEXCOORD9; #endif #if defined(_RAY_MARCHING_BAKED_ORIGINS) float4 color : TEXCOORD10; #endif UNITY_VERTEX_INPUT_INSTANCE_ID UNITY_VERTEX_OUTPUT_STEREO }; #endif // __INTERPOLATORS_INC