StandardMultilayerPBR_VertexEval.azsli 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. #ifndef EvaluateVertexGeometry
  10. #define EvaluateVertexGeometry EvaluateVertexGeometry_StandardMultilayerPBR
  11. #endif
  12. #include <Atom/Feature/Common/Assets/Shaders/Materials/BasePBR/BasePBR_VertexEval.azsli>
  13. VsOutput EvaluateVertexGeometry_StandardMultilayerPBR(
  14. const MaterialParameters params,
  15. float3 position,
  16. float3 normal,
  17. float4 tangent,
  18. float2 uv0,
  19. float2 uv1,
  20. float3 vertexBlendMask,
  21. VsSystemValues SV)
  22. {
  23. VsOutput output = EvaluateVertexGeometry_BasePBR(params, position, normal, tangent, uv0, uv1, SV, false, float4(1.0f, 1.0f, 1.0f, 1.0f));
  24. #if MATERIAL_USES_VERTEX_BLENDMASK
  25. if(o_blendMask_isBound)
  26. {
  27. output.blendFactors = float4(vertexBlendMask, 0);
  28. }
  29. else
  30. {
  31. output.blendFactors = float4(0,0,0,0);
  32. }
  33. #endif // MATERIAL_USES_VERTEX_BLENDMASK
  34. return output;
  35. }
  36. VsOutput EvaluateVertexGeometry_StandardMultilayerPBR(VsInput IN, VsSystemValues SV, const MaterialParameters params)
  37. {
  38. return EvaluateVertexGeometry_StandardMultilayerPBR(
  39. params,
  40. IN.position,
  41. IN.normal,
  42. IN.tangent,
  43. IN.uv0,
  44. IN.uv1,
  45. #if MATERIAL_USES_VERTEX_BLENDMASK
  46. IN.m_optional_blendMask.rgb,
  47. #else
  48. float3(0, 0, 0),
  49. #endif
  50. SV);
  51. }