diff --git a/Gems/Atom/Feature/Common/Assets/Materials/Types/BasePBR_ForwardPass.azsl b/Gems/Atom/Feature/Common/Assets/Materials/Types/BasePBR_ForwardPass.azsl index be0fcd7250..96318f2284 100644 --- a/Gems/Atom/Feature/Common/Assets/Materials/Types/BasePBR_ForwardPass.azsl +++ b/Gems/Atom/Feature/Common/Assets/Materials/Types/BasePBR_ForwardPass.azsl @@ -180,7 +180,6 @@ PbrLightingOutput ForwardPassPS_Common(VSOutput IN, bool isFrontFace) } -[earlydepthstencil] ForwardPassOutput BasePbr_ForwardPassPS_EDS(VSOutput IN, bool isFrontFace : SV_IsFrontFace) { ForwardPassOutput OUT; diff --git a/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/LightingOptions.azsli b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/LightingOptions.azsli index 35d9bced0d..9febc6a9f7 100644 --- a/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/LightingOptions.azsli +++ b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/LightingOptions.azsli @@ -8,6 +8,14 @@ #pragma once +// --- Note: About this file --- +// This file uses #defines to completely strip out certain lighting features from shaders +// This enables us to avoid code duplication and write an uber-esque shader code and then +// be able to adjust the code for different use cases (for example basic materials can strip +// away transimission related code used for foliage). These are different from shader options +// in that shader options allow more user flexibility to adjust materials at runtime, whereas +// these #define options are for customizing and optimizing material types (like BasePBR) + // --- Light Defines --- #ifndef ENABLE_AREA_LIGHT_VALIDATION diff --git a/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/Surfaces/StandardSurface.azsli b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/Surfaces/StandardSurface.azsli index 34d05ecb05..cf4edba923 100644 --- a/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/Surfaces/StandardSurface.azsli +++ b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/Surfaces/StandardSurface.azsli @@ -20,10 +20,6 @@ class Surface ClearCoatSurfaceData clearCoat; #endif -#if ENABLE_TRANSMISSION - TransmissionSurfaceData transmission; // This is not actually used for Standard PBR, but must be present for common lighting code to compile -#endif - // ------- BasePbrSurfaceData ------- precise float3 position; //!< Position in world-space