//// shadow.qml// developer/utilities/render//// Olivier Prat, created on 10/25/2017.// Copyright 2017 High Fidelity, Inc.//// Distributed under the Apache License, Version 2.0.// See the accompanying file LICENSE or https://www.apache.org/licenses/LICENSE-2.0.html//import QtQuick 2.7import QtQuick.Controls 1.4import QtQuick.Layouts 1.3 import stylesUit 1.0import controlsUit 1.0 as HifiControls import "configSlider" Rectangle { id: root; HifiConstants { id: hifi; } color: hifi.colors.baseGray; property var viewConfig: Render.getConfig("RenderMainView.DrawViewFrustum"); property var shadowConfig : Render.getConfig("RenderMainView.ShadowSetup"); property var shadow0Config: Render.getConfig("RenderMainView.DrawShadowFrustum0"); property var shadow1Config: Render.getConfig("RenderMainView.DrawShadowFrustum1"); property var shadow2Config: Render.getConfig("RenderMainView.DrawShadowFrustum2"); property var shadow3Config: Render.getConfig("RenderMainView.DrawShadowFrustum3"); property var shadowBBox0Config: Render.getConfig("RenderMainView.DrawShadowBBox0"); property var shadowBBox1Config: Render.getConfig("RenderMainView.DrawShadowBBox1"); property var shadowBBox2Config: Render.getConfig("RenderMainView.DrawShadowBBox2"); property var shadowBBox3Config: Render.getConfig("RenderMainView.DrawShadowBBox3"); Component.onCompleted: { viewConfig.enabled = true; shadow0Config.enabled = true; shadow1Config.enabled = true; shadow2Config.enabled = true; shadow3Config.enabled = true; shadowBBox0Config.enabled = true; shadowBBox1Config.enabled = true; shadowBBox2Config.enabled = true; shadowBBox3Config.enabled = true; } Component.onDestruction: { viewConfig.enabled = false; shadow0Config.enabled = false; shadow1Config.enabled = false; shadow2Config.enabled = false; shadow3Config.enabled = false; shadow0Config.isFrozen = false; shadow1Config.isFrozen = false; shadow2Config.isFrozen = false; shadow3Config.isFrozen = false; shadowBBox0Config.enabled = false; shadowBBox1Config.enabled = false; shadowBBox2Config.enabled = false; shadowBBox3Config.enabled = false; shadowBBox0Config.isFrozen = false; shadowBBox1Config.isFrozen = false; shadowBBox2Config.isFrozen = false; shadowBBox3Config.isFrozen = false; } ColumnLayout { spacing: 10 anchors.left: parent.left anchors.right: parent.right anchors.margins: hifi.dimensions.contentMargin.x RowLayout { spacing: 20 Layout.fillWidth: true HifiControls.CheckBox { boxSize: 20 text: "Freeze" checked: false onCheckedChanged: { viewConfig.isFrozen = checked; shadow0Config.isFrozen = checked; shadow1Config.isFrozen = checked; shadow2Config.isFrozen = checked; shadow3Config.isFrozen = checked; shadowBBox0Config.isFrozen = checked; shadowBBox1Config.isFrozen = checked; shadowBBox2Config.isFrozen = checked; shadowBBox3Config.isFrozen = checked; } } HifiControls.Label { text: "View" color: "yellow" font.italic: true } HifiControls.Label { text: "Shadow" color: "blue" font.italic: true } HifiControls.Label { text: "AABB" color: "red" font.italic: true } } ConfigSlider { label: qsTr("Bias Input") integral: false config: shadowConfig property: "biasInput" max: 1.0 min: 0.0 height: 38 width: 250 } ConfigSlider { label: qsTr("Shadow Max Distance") integral: false config: shadowConfig property: "maxDistance" max: 250.0 min: 0.0 height: 38 width: 250 } Repeater { model: [ "0", "1", "2", "3" ] ColumnLayout { spacing: 8 anchors.left: parent.left anchors.right: parent.right HifiControls.Separator { anchors.left: parent.left anchors.right: parent.right } HifiControls.CheckBox { text: "Cascade "+modelData boxSize: 20 checked: Render.getConfig("RenderMainView.DrawShadowFrustum"+modelData) onCheckedChanged: { Render.getConfig("RenderMainView.DrawShadowFrustum"+modelData).enabled = checked; Render.getConfig("RenderMainView.DrawShadowBBox"+modelData).enabled = checked; } } ConfigSlider { label: qsTr("Constant bias") integral: false config: shadowConfig property: "constantBias"+modelData max: 1.0 min: 0.0 height: 38 width: 250 } ConfigSlider { label: qsTr("Slope bias") integral: false config: shadowConfig property: "slopeBias"+modelData max: 1.0 min: 0.0 height: 38 width: 250 } } } }}
//
// shadow.qml
// developer/utilities/render
//
// Olivier Prat, created on 10/25/2017.
// Copyright 2017 High Fidelity, Inc.
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or https://www.apache.org/licenses/LICENSE-2.0.html
//
import QtQuick 2.7
import QtQuick.Controls 1.4
import QtQuick.Layouts 1.3
import stylesUit 1.0
import controlsUit 1.0 as HifiControls
import "configSlider"
Rectangle {
id: root;
HifiConstants { id: hifi; }
color: hifi.colors.baseGray;
property var viewConfig: Render.getConfig("RenderMainView.DrawViewFrustum");
property var shadowConfig : Render.getConfig("RenderMainView.ShadowSetup");
property var shadow0Config: Render.getConfig("RenderMainView.DrawShadowFrustum0");
property var shadow1Config: Render.getConfig("RenderMainView.DrawShadowFrustum1");
property var shadow2Config: Render.getConfig("RenderMainView.DrawShadowFrustum2");
property var shadow3Config: Render.getConfig("RenderMainView.DrawShadowFrustum3");
property var shadowBBox0Config: Render.getConfig("RenderMainView.DrawShadowBBox0");
property var shadowBBox1Config: Render.getConfig("RenderMainView.DrawShadowBBox1");
property var shadowBBox2Config: Render.getConfig("RenderMainView.DrawShadowBBox2");
property var shadowBBox3Config: Render.getConfig("RenderMainView.DrawShadowBBox3");
Component.onCompleted: {
viewConfig.enabled = true;
shadow0Config.enabled = true;
shadow1Config.enabled = true;
shadow2Config.enabled = true;
shadow3Config.enabled = true;
shadowBBox0Config.enabled = true;
shadowBBox1Config.enabled = true;
shadowBBox2Config.enabled = true;
shadowBBox3Config.enabled = true;
}
Component.onDestruction: {
viewConfig.enabled = false;
shadow0Config.enabled = false;
shadow1Config.enabled = false;
shadow2Config.enabled = false;
shadow3Config.enabled = false;
shadow0Config.isFrozen = false;
shadow1Config.isFrozen = false;
shadow2Config.isFrozen = false;
shadow3Config.isFrozen = false;
shadowBBox0Config.enabled = false;
shadowBBox1Config.enabled = false;
shadowBBox2Config.enabled = false;
shadowBBox3Config.enabled = false;
shadowBBox0Config.isFrozen = false;
shadowBBox1Config.isFrozen = false;
shadowBBox2Config.isFrozen = false;
shadowBBox3Config.isFrozen = false;
}
ColumnLayout {
spacing: 10
anchors.left: parent.left
anchors.right: parent.right
anchors.margins: hifi.dimensions.contentMargin.x
RowLayout {
spacing: 20
Layout.fillWidth: true
HifiControls.CheckBox {
boxSize: 20
text: "Freeze"
checked: false
onCheckedChanged: {
viewConfig.isFrozen = checked;
shadow0Config.isFrozen = checked;
shadow1Config.isFrozen = checked;
shadow2Config.isFrozen = checked;
shadow3Config.isFrozen = checked;
shadowBBox0Config.isFrozen = checked;
shadowBBox1Config.isFrozen = checked;
shadowBBox2Config.isFrozen = checked;
shadowBBox3Config.isFrozen = checked;
}
}
HifiControls.Label {
text: "View"
color: "yellow"
font.italic: true
}
HifiControls.Label {
text: "Shadow"
color: "blue"
font.italic: true
}
HifiControls.Label {
text: "AABB"
color: "red"
font.italic: true
}
}
ConfigSlider {
label: qsTr("Bias Input")
integral: false
config: shadowConfig
property: "biasInput"
max: 1.0
min: 0.0
height: 38
width: 250
}
ConfigSlider {
label: qsTr("Shadow Max Distance")
integral: false
config: shadowConfig
property: "maxDistance"
max: 250.0
min: 0.0
height: 38
width: 250
}
Repeater {
model: [
"0", "1", "2", "3"
]
ColumnLayout {
spacing: 8
anchors.left: parent.left
anchors.right: parent.right
HifiControls.Separator {
anchors.left: parent.left
anchors.right: parent.right
}
HifiControls.CheckBox {
text: "Cascade "+modelData
boxSize: 20
checked: Render.getConfig("RenderMainView.DrawShadowFrustum"+modelData)
onCheckedChanged: {
Render.getConfig("RenderMainView.DrawShadowFrustum"+modelData).enabled = checked;
Render.getConfig("RenderMainView.DrawShadowBBox"+modelData).enabled = checked;
}
}
ConfigSlider {
label: qsTr("Constant bias")
integral: false
config: shadowConfig
property: "constantBias"+modelData
max: 1.0
min: 0.0
height: 38
width: 250
}
ConfigSlider {
label: qsTr("Slope bias")
integral: false
config: shadowConfig
property: "slopeBias"+modelData
max: 1.0
min: 0.0
height: 38
width: 250
}
}
}
}
}