StructuredBuffer<float4x4> _PerInstanceData; void GetInstanceDataMatrix_float(float instanceID, out float4x4 mat) { uint id = (uint) instanceID; mat = _PerInstanceData[id]; } void ApplyInstanceMatrix_float(float3 position, float4x4 mat, out float3 worldPosition) { float4 pos = float4(position, 1); worldPosition = mul(mat, pos).xyz; }