pass_template:
    samplerstates:
        SamplerLinear:
            filter: MIN_MAG_MIP_LINEAR
            addressU: CLAMP
            addressV: CLAMP
        SamplerPoint:
            filter: MIN_MAG_MIP_POINT
            addressU: CLAMP
            addressV: CLAMP
    type: RGBA8_uint
    constant-buffers:
        globalParams: {screenSize: SCREEN_SIZE, captureState: CAPTURE_STATE, tileUV: TILE_UV_RANGE}
        controlBuf: {ui_fFocusDepth: focusSlider, ui_fFarBlurCurve : farblurcurveSlider, ui_fNearBlurCurve : nearblurcurveSlider, ui_fShapeRadius : blurradiusSlider, g_sldInvert: invSlider}

typical_slider:
      type: float
      minimum-value: 0.0
      maximum-value: 1.0
      default-value: 0.0
      ui-sticky-region: 0.01
      ui-value-unit: "%"
      ui-value-min: 0
      ui-value-max: 100
      ui-value-step: 1.01

boolean_slider:
      type: bool
      default-value: 0

user-constants:
    - name: focusSlider
      ui-hint: "Use this to set the focus plane distance of the DoF effect."
      ui-hint-localized:
        cs-CZ: "Umožňuje nastavit vzdálenost ohniskové roviny efektu hloubky ostrosti."
        da-DK: "Brug denne til at indstille afstanden for fokusplanet på DoF-effekten. "
        de-DE: "Verwenden Sie diese Option zum Einstellen der Fokusfeldweite des Schärfentiefe-Effekts."
        el-GR: "Χρησιμοποιήστε το για να ορίσετε την απόσταση του επιπέδου εστίασης του εφέ βάθους πεδίου."
        en-UK: "Use this to set the focus plane distance of the DoF effect."
        es-ES: "Use esta opción para establecer la distancia de plano focal para el efecto profundidad de campo (DOF)."
        es-MX: "Utilice esta configuración para establecer la distancia del plano de foco del efecto de profundidad de campo (PDC)"
        fi-FI: "Käytä tätä asettaaksesi DoF-tehosteen tarkennustasoetäisyyden."
        fr-FR: "Cette option permet de paramétrer la distance de plan de la mise au point de l’effet de profondeur de champ."
        hu: "Ennek segítségével állítható be a mélységélesség effektus fókuszsíkjának távolsága."
        it-IT: "Usare questa funzione per impostare la distanza del piano di focalizzazione dell’effetto PdC."
        ja-JP: "これを使用して、DoF 効果のフォーカス面距離を設定します。"
        ko-KR: "DoF 효과의 플레인 거리에 초점을 설정하는 데 사용하십시오."
        nl-NL: "Gebruik dit om de afstand van het focusvlak van het scherptediepte-effect in te stellen."
        nb-NO: "Bruk denne til å angi fokusplanavstand for DoF-effekten."
        pl: "Służy do ustawiania obszaru ostrości efektu głębi ostrości."
        pt-PT: "Utilize esta definição para estabelecer a distância do plano de focagem do efeito PDC."
        pt-BR: "Use isto para definir a distância do plano de foco do efeito profundidade de campo."
        ru-RU: "Используйте этот параметр, чтобы задать дальность фокальной плоскости эффекта глубины резкости."
        sk-SK: "Toto nastavenie upravuje vzdialenosť roviny zaostrenia v efekte Hĺbka ostrosti."
        sl-SI: "Uporabite to za nastavitev razdalje goriščne ravnine učinka globine polja."
        sv-SE: "Använd denna för att ställa in fokusplandistans på FoD-effekten."
        th-TH: "ใช้สิ่งนี้ตั้งค่าระยะทางระนาบโฟกัสจากเอฟเฟกต์ของระยะชัดลึก"
        tr-TR: "Alan derinliği efektlerinin odak düzleminin mesafesini ayarlamak için bu seçeneği kullanın."
        zh-CHS: "使用此选项设置景深效果的焦平面距离。"
        zh-CHT: "使用此選項來設定景深效果的焦點平面距離。"
      ui-label: "Focus depth"
      ui-label-localized:
        cs-CZ: "Hloubka ostrosti"
        da-DK: "Fokusdybde"
        de-DE: "Fokustiefe"
        el-GR: "Βάθος εστίασης"
        en-UK: "Focus depth"
        es-ES: "Profundidad de enfoque"
        es-MX: "Profundidad de foco"
        fi-FI: "Tarkennuksen syvyys"
        fr-FR: "Profondeur de mise au point"
        hu: "Fókuszmélység"
        it-IT: "Profondità focalizzazione"
        ja-JP: "フォーカス深度"
        ko-KR: "초점 깊이"
        nl-NL: "Scherptediepte"
        nb-NO: "Fokusdybde"
        pl: "Głębia ostrości"
        pt-PT: "Profundidade de focagem"
        pt-BR: "Profundidade de foco"
        ru-RU: "Глубина фокуса"
        sk-SK: "Hĺbka zaostrenia"
        sl-SI: "Globina fokusa"
        sv-SE: "Fokusdjup"
        th-TH: "ระยะลึกของโฟกัส"
        tr-TR: "Odak derinliği"
        zh-CHS: "焦深"
        zh-CHT: "焦點深度"
      default-value: 0.5
      import: [typical_slider]
    - name: farblurcurveSlider
      ui-hint: "Curve of blur behind focus plane."
      ui-hint-localized:
        cs-CZ: "Křivka rozostření za ohniskovou rovinou."
        da-DK: "Sløringskurve bag fokusplanet."
        de-DE: "Unschärfekurve hinter dem Fokusfeld."
        el-GR: "Καμπύλη του θολώματος πίσω από το επίπεδο εστίασης."
        en-UK: "Curve of blur behind focus plane."
        es-ES: "Curva de desenfoque por detrás del plano focal."
        es-MX: "Curva de desenfoque detrás del plano de foco."
        fi-FI: "Sumennuskäyrä tarkennustason takana."
        fr-FR: "Courbe de flou derrière le plan de mise au point."
        hu: "A fókuszsík mögötti homályossági görbe."
        it-IT: "Curva di sfocatura dietro il piano di focalizzazione."
        ja-JP: "フォーカス面の後ろのぼかしのカーブ。"
        ko-KR: "초점이 맞춰진 플레인 뒤에 있는 블러 곡선."
        nl-NL: "Boog van de vervaging achter het focusvlak."
        nb-NO: "Kurve for uskarphet bak fokusplan"
        pl: "Krzywa rozmycia za obszarem ostrości."
        pt-PT: "Curva de desfocagem atrás do plano de focagem."
        pt-BR: "Curva de desfoque atrás do plano de foco."
        ru-RU: "Кривая размытия за фокальной плоскостью"
        sk-SK: "Krivka rozostrenia za rovinou zaostrenia."
        sl-SI: "Krivulja zameglitve za goriščno ravnino."
        sv-SE: "Kurva för oskärpa bakom fokusplan"
        th-TH: "เส้นโค้งของภาพมัวหลังระนาบโฟกัส"
        tr-TR: "Odak düzleminin uzağında kalan bulanıklaştırma eğrisi."
        zh-CHS: "模糊曲线位于焦平面后。"
        zh-CHT: "在焦點平面之後的模糊曲線。"
      ui-label: "Far blur curve"
      ui-label-localized:
        cs-CZ: "Křivka vzdáleného rozostření"
        da-DK: "Sløringskurve langt væk"
        de-DE: "Unschärfekurve entfernt"
        el-GR: "Καμπύλη μακρινού θολώματος"
        en-UK: "Far blur curve"
        es-ES: "Curva de desenfoque lejana"
        es-MX: "Curva de desenfoque lejana"
        fi-FI: "Etäsumennuskäyrä"
        fr-FR: "Courbe de flou éloignée"
        hu: "Távoli homályossági görbe"
        it-IT: "Curva sfocatura distante"
        ja-JP: "遠景ぼかしカーブ"
        ko-KR: "멀리 있는 블러 곡선"
        nl-NL: "Vervagingsboog (veraf)"
        nb-NO: "Fjern uskarphetskurve"
        pl: "Krzywa dalekiego rozmycia"
        pt-PT: "Curva de desfocagem à distância."
        pt-BR: "Curva de desfoque distante"
        ru-RU: "Дальняя кривая размытия"
        sk-SK: "Vzdialená krivka rozostrenia"
        sl-SI: "Krivulja oddaljene zameglitve"
        sv-SE: "Kurva för lång oskärpa"
        th-TH: "เส้นโค้งพร่ามัวระยะไกล"
        tr-TR: "Uzak bulanıklaştırma eğrisi"
        zh-CHS: "远模糊曲线"
        zh-CHT: "遠端模糊曲線"
      default-value: 0.15
      import: [typical_slider]
    - name: nearblurcurveSlider
      ui-hint: "Curve of blur closer than focus plane."
      ui-hint-localized:
        cs-CZ: "Křivka rozostření před ohniskovou rovinou."
        da-DK: "Sløringskurve tættere på end fokusplan."
        de-DE: "Unschärfekurve vor dem Fokusfeld."
        el-GR: "Καμπύλη του θολώματος πιο κοντά από το επίπεδο εστίασης."
        en-UK: "Curve of blur closer than focus plane."
        es-ES: "Curva de desenfoque por delante del plano focal."
        es-MX: "Curva de desenfoque más cerca que el plano de foco."
        fi-FI: "Sumennuskäyrä lähempänä kuin tarkennustaso."
        fr-FR: "Courbe de flou devant le plan de mise au point."
        hu: "A fókuszsíknál közelebbi homályossági görbe."
        it-IT: "Curva di sfocatura più vicina rispetto al piano di focalizzazione."
        ja-JP: "フォーカス面より近いぼかしのカーブ。"
        ko-KR: "초점이 맞춰진 플레인보다 가까운 블러 곡선."
        nl-NL: "Boog van de vervaging vóór het focusvlak."
        nb-NO: "Kurve for uskarphet nærmere enn fokusplan."
        pl: "Krzywa rozmycia przed obszarem ostrości."
        pt-PT: "Curva de desfocagem próxima do plano de focagem."
        pt-BR: "Curva de desfoque mais próximo do plano de foco."
        ru-RU: "Кривая размытия перед фокальной плоскостью"
        sk-SK: "Krivka rozostrenia bližšie ako rovina zaostrenia."
        sl-SI: "Krivulja zameglitve bližje kot goriščna ravnina."
        sv-SE: "Kurva för oskärpa närmare än fokusplan."
        th-TH: "เส้นโค้งของภาพมัวที่ใกล้กว่าระนาบโฟกัส"
        tr-TR: "Odak düzleminin yakınında kalan bulanıklaştırma eğrisi."
        zh-CHS: "模糊曲线比焦平面更接近。"
        zh-CHT: "比焦點平面更近的模糊曲線。"
      ui-label: "Near blur curve"
      ui-label-localized:
        cs-CZ: "Křivka blízkého rozostření"
        da-DK: "Sløringskurve tæt på"
        de-DE: "Unschärfekurve nah"
        el-GR: "Καμπύλη κοντινού θολώματος"
        en-UK: "Near blur curve"
        es-ES: "Curva de desenfoque cercana"
        es-MX: "Curva de desenfoque cercana"
        fi-FI: "Lähisumennuskäyrä"
        fr-FR: "Courbe de flou proche"
        hu: "Közeli homályossági görbe"
        it-IT: "Curva sfocatura vicina"
        ja-JP: "近景ぼかしカーブ"
        ko-KR: "블러 곡선"
        nl-NL: "Vervagingsboog (dichtbij)"
        nb-NO: "Nær uskarphetskurve"
        pl: "Krzywa bliskiego rozmycia"
        pt-PT: "Curva de desfocagem próxima."
        pt-BR: "Curva de desfoque próximo"
        ru-RU: "Ближняя кривая размытия"
        sk-SK: "Blízka krivka rozostrenia"
        sl-SI: "Krivulja bližnje zameglitve"
        sv-SE: "Kurva för kort oskärpa"
        th-TH: "เส้นโค้งพร่ามัวระยะใกล้"
        tr-TR: "Yakın bulanıklaştırma eğrisi"
        zh-CHS: "近模糊曲线"
        zh-CHT: "近端模糊曲線"
      default-value: 0.85
      import: [typical_slider]
    - name: blurradiusSlider
      ui-hint: "Maximal blur radius."
      ui-hint-localized:
        cs-CZ: "Maximální poloměr rozostření."
        da-DK: "Maksimal sløringsradius."
        de-DE: "Maximaler Unschärferadius."
        el-GR: "Μέγιστη ακτίνα θολώματος."
        en-UK: "Maximal blur radius."
        es-ES: "Radio máximo de desenfoque."
        es-MX: "Radio de desenfoque máximo."
        fi-FI: "Sumennuksen enimmäissäde"
        fr-FR: "Rayon de flou maximal."
        hu: "A homályosság maximális sugara."
        it-IT: "Raggio sfocatura massimo"
        ja-JP: "最大ぼかし半径"
        ko-KR: "최대 블러 직경."
        nl-NL: "Maximaal vervagingsbereik."
        nb-NO: "Maksimal uskarphetsradius."
        pl: "Maksymalny promień rozmycia."
        pt-PT: "Raio de desfocagem máximo."
        pt-BR: "Raio de desfoque máximo."
        ru-RU: "Максимальный радиус размытия."
        sk-SK: "Maximálny dosah rozostrenia."
        sl-SI: "Radij maksimalne zameglitve"
        sv-SE: "Maximal radie för oskärpa."
        th-TH: "รัศมีความพร่ามัวสูงสุด"
        tr-TR: "Maksimum bulanıklaştırma yarıçapı."
        zh-CHS: "最大模糊半径。"
        zh-CHT: "最大模糊半徑。"
      ui-label: "Blur radius"
      ui-label-localized:
        cs-CZ: "Poloměr rozostření"
        da-DK: "Sløringsradius"
        de-DE: "Unschärferadius"
        el-GR: "Ακτίνα θολώματος"
        en-UK: "Blur radius"
        es-ES: "Radio de desenfoque"
        es-MX: "Radio de desenfoque"
        fi-FI: "Sumennuksen säde"
        fr-FR: "Rayon de flou"
        hu: "Homályosság sugara"
        it-IT: "Raggio sfocatura"
        ja-JP: "ぼかし半径"
        ko-KR: "블러 크기"
        nl-NL: "Vervagingsbereik"
        nb-NO: "Uskarphetsradius"
        pl: "Promień rozmycia"
        pt-PT: "Raio de desfocagem"
        pt-BR: "Raio de desfoque"
        ru-RU: "Радиус размытия"
        sk-SK: "Dosah rozostrenia"
        sl-SI: "Radij zameglitve"
        sv-SE: "Radie för oskärpa"
        th-TH: "รัศมีความพร่ามัว"
        tr-TR: "Bulanıklaştırma yarıçapı"
        zh-CHS: "模糊半径"
        zh-CHT: "模糊半徑"
      default-value: 0.5
      import: [typical_slider]
    - name: invSlider
      ui-label: "Invert Depth"
      ui-label-localized:
        cs-CZ: "Převrátit hloubku"
        da-DK: "Invertér dybde"
        de-DE: "Tiefe umkehren"
        el-GR: "Αναστροφή βάθους"
        en-UK: "Invert Depth"
        es-ES: "Invertir profundidad"
        es-MX: "Invertir profundidad"
        fi-FI: "Käännä syvyys"
        fr-FR: "Inverser la profondeur"
        hu: "Mélység megfordítása"
        it-IT: "Inverti profondità"
        ja-JP: "深度を反転"
        ko-KR: "깊이 반전"
        nl-NL: "Diepte omkeren"
        nb-NO: "Omvend dybde"
        pl: "Odwróć głębię"
        pt-PT: "Inverter profundidade"
        pt-BR: "Inverter profundidade"
        ru-RU: "Инвертировать глубину"
        sk-SK: "Invertovať hĺbku"
        sl-SI: "Obrni globino"
        sv-SE: "Inverterat djup"
        th-TH: "กลับความลึก"
        tr-TR: "Derinliği Tersine Çevir"
        zh-CHS: "反转深度"
        zh-CHT: "反轉深度"
      import: [boolean_slider]

coc2alpha:
    import: [pass_template]
    shader: PS_CoC2Alpha@DOF.yfx
    textures:
        texOriginalColor:
            channel: PIPE_INPUTS_COLOR
        texOriginalDepth:
            channel: PIPE_INPUTS_DEPTH

bokehblur:
    import: [pass_template]
    shader: PS_Bokeh@DOF.yfx
    textures:
        texColorCoC:
            import: [coc2alpha]

combine:
    import: [pass_template]
    shader: PS_Combine@DOF.yfx
    textures:
        texColorCoC:
            import: [bokehblur]
        texOriginalColor:
            channel: PIPE_INPUTS_COLOR
        texOriginalDepth:
            channel: PIPE_INPUTS_DEPTH

gaussblurA:
    import: [pass_template]
    shader: PS_Gauss1@DOF.yfx
    textures:
        texColorCoC:
            import: [combine]

main:
    import: [pass_template]
    shader: PS_Gauss2@DOF.yfx
    textures:
        texColorCoC:
            import: [gaussblurA]
