123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- /*
- * Copyright (c) Contributors to the Open 3D Engine Project.
- * For complete copyright and license terms please see the LICENSE at the root of this distribution.
- *
- * SPDX-License-Identifier: Apache-2.0 OR MIT
- *
- */
- #include <Atom/Features/PBR/Lights/LightStructures.azsli>
- #include <Atom/Features/Decals/DecalStructures.azsli>
- #include <viewsrg_all.srgi>
- #include <Atom/Features/PostProcessing/FullscreenVertex.azsli>
- ShaderResourceGroup PassSrg : SRG_PerPass
- {
- // D32_FLOAT_S8X24_UINT (Format:15) depthStencil texture
- Texture2D<float2> m_depthStencil;
- Sampler PointSampler
- {
- MinFilter = Point;
- MagFilter = Point;
- MipFilter = Point;
- AddressU = Clamp;
- AddressV = Clamp;
- AddressW = Clamp;
- };
- }
- struct PSOutput
- {
- float m_linearDepth : SV_Target0;
- };
- PSOutput MainPS(VSOutput IN)
- {
- PSOutput OUT;
- float zDepth = PassSrg::m_depthStencil.Sample(PassSrg::PointSampler, IN.m_texCoord).r;
- float linearDepth =
- abs(((ViewSrg::GetFarZTimesNearZ()) / (ViewSrg::GetFarZMinusNearZ() * zDepth - ViewSrg::GetFarZ())));
- OUT.m_linearDepth = linearDepth;
- return OUT;
- }
|