Skin_LightingEval.azsli 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #pragma once
  9. // This #define magic lets you use the EvaluateLighting function in this file without making it the final EvaluateLighting
  10. // used in your shader. Simply #define EvaluateLighting to your custom definition before including this file
  11. //
  12. #ifndef EvaluateLighting
  13. #define EvaluateLighting EvaluateLighting_SkinPBR
  14. #endif
  15. #include "../BasePBR/BasePBR_LightingEval.azsli"
  16. void InitializeLightingData_SkinPBR(inout Surface surface, float4 screenPosition, float3 viewPosition[MAX_SHADING_VIEWS], inout LightingData lightingData)
  17. {
  18. // --- Base PBR ---
  19. InitializeLightingData_BasePBR(surface, screenPosition, viewPosition, lightingData);
  20. // --- Skin PBR ---
  21. lightingData.diffuseAmbientOcclusion = surface.diffuseAmbientOcclusion;
  22. lightingData.specularOcclusion = surface.specularOcclusion;
  23. }
  24. LightingData EvaluateLighting_SkinPBR(inout Surface surface, float4 screenPosition, float3 viewPosition[MAX_SHADING_VIEWS])
  25. {
  26. LightingData lightingData;
  27. InitializeLightingData_SkinPBR(surface, screenPosition, viewPosition, lightingData);
  28. CalculateLighting_BasePBR(surface, screenPosition, lightingData);
  29. return lightingData;
  30. }