/* * 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 #include ShaderResourceGroup PassSrg : SRG_PerPass { // D32_FLOAT_S8X24_UINT (Format:15) depthStencil texture Texture2D m_depthStencil; Sampler LinearSampler { MinFilter = Linear; MagFilter = Linear; MipFilter = Linear; 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::LinearSampler, IN.m_texCoord).r; float linearDepth = abs(((ViewSrg::GetFarZTimesNearZ()) / (ViewSrg::GetFarZMinusNearZ() * zDepth - ViewSrg::GetFarZ()))); OUT.m_linearDepth = linearDepth; return OUT; }