Qt Quick 3D - Reflection Probes Example
import QtQuick
import QtQuick.Controls
ScrollView {
property int timeSlicingIndex: timeSlicingComboBox.currentIndex
property int refreshModeIndex: refreshModeComboBox.currentIndex
property int qualityIndex: qualityComboBox.currentIndex
property vector3d probeSize: Qt.vector3d(probeSizeXSlider.value, probeSizeYSlider.value, probeSizeZSlider.value)
property vector3d probePosition: Qt.vector3d(probePositionXSlider.value, probePositionYSlider.value, probePositionZSlider.value)
property bool probeParallaxCorrection: parallaxCheckBox.checked
property real sphereRoughness: materialRoughnessSlider.value
property bool sphereReceivesReflection: sphereReceivesReflectionsCheckBox.checked
property bool floorReceivesReflection: floorReceivesReflectionsCheckBox.checked
property bool spriteParticlesEnabled: particleSystemSpriteCheckBox.checked
property bool modelParticlesEnabled: particleSystemModelCheckBox.checked
ScrollBar.vertical.policy: ScrollBar.AlwaysOn
padding: 10
background: Rectangle {
color: "white"
}
Flickable {
clip: true
contentWidth: settingsArea.width
contentHeight: settingsArea.height
Column {
id: settingsArea
spacing: 5
Text {
anchors.horizontalCenter: parent.horizontalCenter
text: "Reflection Map"
font.pixelSize: 14
}
Item { width: 1; height: 10 }
Text {
text: "Time Slicing"
}
ComboBox {
id: timeSlicingComboBox
width: 200
model: [ "None", "All Faces At Once", "Individual Faces" ]
}
Text {
text: "Refresh Mode"
}
ComboBox {
id: refreshModeComboBox
width: 200
model: [ "Every Frame", "First Frame" ]
}
Text {
text: "Reflection Map Quality"
}
ComboBox {
id: qualityComboBox
width: 200
model: [ "Very Low", "Low", "Medium", "High", "Very High" ]
}
Item { width: 1; height: 10 }
Text {
anchors.horizontalCenter: parent.horizontalCenter
text: "Floor Reflection Probe"
font.pixelSize: 14
}
Item { width: 1; height: 10 }
CheckBox {
id: parallaxCheckBox
checked: true
text: qsTr("Parallax Correction")
}
Text {
text: "Box Size (" + probeSizeXSlider.value + ", " + probeSizeYSlider.value + ", " + probeSizeZSlider.value + ")"
}
Slider {
id: probeSizeXSlider
from: 0
value: 1000
to: 1000
stepSize: 1
}
Slider {
id: probeSizeYSlider
from: 0
value: 950
to: 1000
stepSize: 1
}
Slider {
id: probeSizeZSlider
from: 0
value: 650
to: 1000
stepSize: 1
}
Text {
text: "Position (" + probePositionXSlider.value + ", " + probePositionYSlider.value + ", " + probePositionZSlider.value + ")"
}
Slider {
id: probePositionXSlider
from: 0
value: 0
to: 500
stepSize: 1
}
Slider {
id: probePositionYSlider
from: 0
value: 0
to: 500
stepSize: 1
}
Slider {
id: probePositionZSlider
from: 0
value: 0
to: 500
stepSize: 1
}
Item { width: 1; height: 10 }
Text {
anchors.horizontalCenter: parent.horizontalCenter
text: "Particles"
font.pixelSize: 14
}
CheckBox {
id: particleSystemSpriteCheckBox
checked: false
text: qsTr("Sprite Particles")
}
CheckBox {
id: particleSystemModelCheckBox
checked: false
text: qsTr("Model Particles")
}
Item { width: 1; height: 10 }
Text {
anchors.horizontalCenter: parent.horizontalCenter
text: "Model"
font.pixelSize: 14
}
Item { width: 1; height: 10 }
Text {
text: "Sphere Roughness : " + materialRoughnessSlider.value.toFixed(2);
}
Slider {
id: materialRoughnessSlider
from: 0
to: 1.0
value: 0.1
}
CheckBox {
id: sphereReceivesReflectionsCheckBox
checked: true
text: qsTr("Sphere receives reflections")
}
CheckBox {
id: floorReceivesReflectionsCheckBox
checked: true
text: qsTr("Floor receives reflections")
}