77 lines
1.9 KiB
QML
77 lines
1.9 KiB
QML
// Copyright (C) 2025 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
|
|
|
|
import QtQuick
|
|
import QtQuick3D
|
|
import QtQuick3D.Helpers.impl
|
|
|
|
SsrEnvEffect {
|
|
id: ssrEffect
|
|
|
|
// Global
|
|
property real roughnessCut: 0.65
|
|
|
|
// Main pass
|
|
property real stepSize: 0.01
|
|
property real minRayStep: 0.01
|
|
property int binarySteps: 8
|
|
property int maxSteps: 512
|
|
property real baseThickness: 20
|
|
|
|
readonly property TextureInput ssrSampler: TextureInput { texture: Texture {} }
|
|
readonly property TextureInput ssrMaskSampler: TextureInput { texture: Texture {} }
|
|
readonly property TextureInput ssrReflConfSampler: TextureInput { texture: Texture {} }
|
|
|
|
Buffer {
|
|
id: ssrBufferMask
|
|
name: "ssrBufferMask"
|
|
sizeMultiplier: 1.0
|
|
format: Buffer.RGBA32F
|
|
}
|
|
|
|
Buffer {
|
|
id: ssrBufferMainReflColorConf
|
|
name: "ssrBufferMainReflColorConf"
|
|
sizeMultiplier: 1.0
|
|
format: Buffer.RGBA32F
|
|
}
|
|
|
|
Pass {
|
|
id: ssrMaskPass
|
|
output: ssrBufferMask
|
|
shaders: Shader { stage: Shader.Fragment; shader: "qrc:/qtquick3d_helpers/shaders/ssr_mask.frag" }
|
|
}
|
|
|
|
Pass {
|
|
id: ssrMainPass
|
|
output: ssrBufferMainReflColorConf
|
|
shaders: [
|
|
Shader {
|
|
stage: Shader.Fragment
|
|
shader: "qrc:/qtquick3d_helpers/shaders/ssr_main.frag"
|
|
}
|
|
]
|
|
commands: [
|
|
BufferInput { buffer: ssrBufferMask; sampler: "ssrMaskSampler" }
|
|
]
|
|
}
|
|
|
|
Pass {
|
|
id: ssrCompositionPass
|
|
shaders: [
|
|
Shader {
|
|
stage: Shader.Fragment
|
|
shader: "qrc:/qtquick3d_helpers/shaders/ssr_composition.frag"
|
|
}
|
|
]
|
|
commands: [
|
|
BufferInput { buffer: ssrBufferMainReflColorConf; sampler: "ssrSampler" }
|
|
]
|
|
}
|
|
|
|
passes: [
|
|
ssrMaskPass, ssrMainPass, ssrCompositionPass
|
|
]
|
|
|
|
}
|