CTI_indirect.cginc 766 B

1234567891011121314151617181920212223
  1. #ifdef UNITY_PROCEDURAL_INSTANCING_ENABLED
  2. struct IndirectShaderData
  3. {
  4. float4x4 PositionMatrix;
  5. float4x4 InversePositionMatrix;
  6. float4 ControlData;
  7. };
  8. #if defined(SHADER_API_GLCORE) || defined(SHADER_API_D3D11) || defined(SHADER_API_GLES3) || defined(SHADER_API_METAL) || defined(SHADER_API_VULKAN) || defined(SHADER_API_PSSL) || defined(SHADER_API_XBOXONE)
  9. StructuredBuffer<IndirectShaderData> VisibleShaderDataBuffer;
  10. #endif
  11. #endif
  12. void setup()
  13. {
  14. #ifdef UNITY_PROCEDURAL_INSTANCING_ENABLED
  15. unity_LODFade = VisibleShaderDataBuffer[unity_InstanceID].ControlData;
  16. unity_ObjectToWorld = VisibleShaderDataBuffer[unity_InstanceID].PositionMatrix;
  17. unity_WorldToObject = VisibleShaderDataBuffer[unity_InstanceID].InversePositionMatrix;
  18. #endif
  19. }