/* * 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 #include "DepthOfField.azsli" #include ShaderResourceGroup PassSrg : SRG_PerPass { Texture2D m_colorTexture; Texture2D m_depthTexture; Sampler LinearSampler { MinFilter = Linear; MagFilter = Linear; MipFilter = Linear; AddressU = Clamp; AddressV = Clamp; AddressW = Clamp; }; } PSOutput MainPS(VSOutput IN) { PSOutput OUT = (PSOutput)0; float4 color = PassSrg::m_colorTexture.Sample(PassSrg::LinearSampler, IN.m_texCoord); float depth = InvertDepth(PassSrg::m_depthTexture.Sample(PassSrg::LinearSampler, IN.m_texCoord).r); OUT.m_color.rgb = color.rgb; float far = ViewSrg::m_dof.m_cameraParameters.x; float near = ViewSrg::m_dof.m_cameraParameters.y; float focusDistance = ViewSrg::m_dof.m_cameraParameters.z; OUT.m_color.a = ConvertDofFactor(depth, far, near, focusDistance); return OUT; }