MaterialTypes.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // Copyright (C) 2009-2022, Panagiotis Christopoulos Charitos and contributors.
  2. // All rights reserved.
  3. // Code licensed under the BSD License.
  4. // http://www.anki3d.org/LICENSE
  5. #pragma once
  6. #include <AnKi/Shaders/Include/Common.h>
  7. ANKI_BEGIN_NAMESPACE
  8. /// Common data for all materials.
  9. struct MaterialGlobalUniforms
  10. {
  11. Mat4 m_viewProjectionMatrix;
  12. Mat4 m_previousViewProjectionMatrix;
  13. Mat3x4 m_viewMatrix;
  14. Mat3x4 m_cameraTransform;
  15. };
  16. ANKI_SHADER_STATIC_ASSERT(sizeof(MaterialGlobalUniforms) == 14 * sizeof(Vec4));
  17. const U32 MATERIAL_SET_BINDLESS = 0u;
  18. const U32 MATERIAL_SET_GLOBAL = 1u;
  19. const U32 MATERIAL_SET_LOCAL = 2u;
  20. // Begin global bindings
  21. const U32 MATERIAL_BINDING_TRILINEAR_REPEAT_SAMPLER = 0u;
  22. const U32 MATERIAL_BINDING_GLOBAL_UNIFORMS = 1u;
  23. // For forward shading:
  24. const U32 MATERIAL_BINDING_LINEAR_CLAMP_SAMPLER = 2u;
  25. const U32 MATERIAL_BINDING_DEPTH_RT = 3u;
  26. const U32 MATERIAL_BINDING_LIGHT_VOLUME = 4u;
  27. const U32 MATERIAL_BINDING_CLUSTER_SHADING_UNIFORMS = 5u;
  28. const U32 MATERIAL_BINDING_CLUSTER_SHADING_LIGHTS = 6u;
  29. const U32 MATERIAL_BINDING_CLUSTERS = 9u;
  30. // End global bindings
  31. // Begin local bindings
  32. const U32 MATERIAL_BINDING_LOCAL_UNIFORMS = 0u;
  33. const U32 MATERIAL_BINDING_RENDERABLE_GPU_VIEW = 1u;
  34. const U32 MATERIAL_BINDING_BONE_TRANSFORMS = 2u;
  35. const U32 MATERIAL_BINDING_PREVIOUS_BONE_TRANSFORMS = 3u;
  36. const U32 MATERIAL_BINDING_FIRST_NON_STANDARD_LOCAL = 4u;
  37. // End local bindings
  38. ANKI_END_NAMESPACE