#ifndef PROCEDURAL_INCLUDED #define PROCEDURAL_INCLUDED #define UNITY_INDIRECT_DRAW_ARGS IndirectDrawIndexedArgs #include "UnityIndirect.cginc" StructuredBuffer _InstanceTransforms; StructuredBuffer _InvInstanceTransforms; StructuredBuffer _Colors; #if UNITY_ANY_INSTANCING_ENABLED // Based on : // https://github.com/Unity-Technologies/Graphics/blob/master/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/ParticlesInstancing.hlsl // and/or // https://github.com/TwoTailsGames/Unity-Built-in-Shaders/blob/master/CGIncludes/UnityStandardParticleInstancing.cginc void vertInstancingSetup() { } #endif void GetInstanceData_float(uint svInstanceID, float3 pos, out float3 outPos, out float4 color) { InitIndirectDrawArgs(0); uint instanceID = GetIndirectInstanceID_Base(svInstanceID); unity_ObjectToWorld = _InstanceTransforms[instanceID]; unity_WorldToObject = _InvInstanceTransforms[instanceID]; color = _Colors[instanceID]; outPos = pos; } #endif