diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/manual/deferred-renderer-qml/SceneEffect.qml | 16 | ||||
-rw-r--r-- | tests/manual/deferred-renderer-qml/SceneEntity.qml | 59 | ||||
-rw-r--r-- | tests/manual/deferred-renderer-qml/ScreenQuadEntity.qml | 98 | ||||
-rw-r--r-- | tests/manual/deferred-renderer-qml/main.qml | 9 |
4 files changed, 119 insertions, 63 deletions
diff --git a/tests/manual/deferred-renderer-qml/SceneEffect.qml b/tests/manual/deferred-renderer-qml/SceneEffect.qml index 3ec1983fe..0ca081355 100644 --- a/tests/manual/deferred-renderer-qml/SceneEffect.qml +++ b/tests/manual/deferred-renderer-qml/SceneEffect.qml @@ -72,15 +72,15 @@ Effect { out vec3 normal0; uniform mat4 mvp; - uniform mat4 modelView; - uniform mat3 modelViewNormal; + uniform mat4 modelMatrix; + uniform mat3 modelNormalMatrix; uniform vec4 meshColor; void main() { color0 = meshColor; - position0 = vec3(modelView * vertexPosition); - normal0 = normalize(modelViewNormal * vertexNormal); + position0 = vec3(modelMatrix * vertexPosition); + normal0 = normalize(modelNormalMatrix * vertexNormal); gl_Position = mvp * vertexPosition; } " @@ -123,15 +123,15 @@ Effect { varying vec3 normal0; uniform mat4 mvp; - uniform mat4 modelView; - uniform mat3 modelViewNormal; + uniform mat4 modelMatrix; + uniform mat3 modelNormalMatrix; uniform vec4 meshColor; void main() { color0 = meshColor; - position0 = vec3(modelView * vertexPosition); - normal0 = normalize(modelViewNormal * vertexNormal); + position0 = vec3(modelMatrix * vertexPosition); + normal0 = normalize(modelNormalMatrix * vertexNormal); gl_Position = mvp * vertexPosition; } " diff --git a/tests/manual/deferred-renderer-qml/SceneEntity.qml b/tests/manual/deferred-renderer-qml/SceneEntity.qml index 001a24854..6a34be7fb 100644 --- a/tests/manual/deferred-renderer-qml/SceneEntity.qml +++ b/tests/manual/deferred-renderer-qml/SceneEntity.qml @@ -48,15 +48,26 @@ Entity { readonly property Camera camera: camera readonly property Layer layer: sceneLayer + readonly property vector3d light1Pos : sphere1.transform.translation + readonly property vector3d light2Pos : sphere2.transform.translation + readonly property vector3d light3Pos : light3Transform.translation + readonly property vector3d light4Pos : Qt.vector3d(5, 2, 7) + property PointLight light: PointLight { color : "white" - intensity : 4.0 + intensity : 0.0 QQ2.ColorAnimation on color { from: "white"; to: "blue"; duration: 4000; loops: 2 } - QQ2.NumberAnimation on intensity { from: 0; to: 5.0; duration: 1000; loops: QQ2.Animation.Infinite } + QQ2.SequentialAnimation on intensity { + QQ2.NumberAnimation { + from: 0; to: 3.0; duration: 500 + } + QQ2.NumberAnimation { + from: 3.0; to: 0.0; duration: 500 + } + loops: QQ2.Animation.Infinite + } } - components: [ root.light ] - // Global elements Camera { id: camera @@ -97,21 +108,15 @@ Entity { QQ2.SequentialAnimation { loops: QQ2.Animation.Infinite - running: false - QQ2.NumberAnimation { target: sphere1Transform; property: "x"; to: 6; duration: 2000 } - QQ2.NumberAnimation { target: sphere1Transform; property: "x"; to: -10; duration: 2000 } - } - - property PointLight light : PointLight { - color : "green" - intensity : 0.3 + running: true + QQ2.NumberAnimation { target: sphere1Transform; property: "x"; to: 3; duration: 2000 } + QQ2.NumberAnimation { target: sphere1Transform; property: "x"; to: -5; duration: 2000 } } components : [ sphereMesh, sphere1.material, sphere1.transform, - sphere1.light, sceneLayer ] } @@ -124,11 +129,6 @@ Entity { parameters : Parameter { name : "meshColor"; value : "green" } } - property PointLight light : PointLight { - color : "orange" - intensity : 0.7 - } - property Transform transform: Transform { translation: Qt.vector3d(5, 0, 5) } @@ -137,17 +137,12 @@ Entity { sphereMesh, sphere2.transform, sphere2.material, - sphere2.light, sceneLayer ] } Entity { id: light3 - property PointLight light : PointLight { - color : "white" - intensity : 0.5 - } property Material material : Material { effect : sceneMaterialEffect @@ -170,26 +165,8 @@ Entity { components: [ sphereMesh, light3.material, - light3.light, light3.transform, sceneLayer ] } - - Entity { - id: light4 - property PointLight light : PointLight { - color : "white" - intensity : 0.2 - } - property Transform transform: Transform { - translation: Qt.vector3d(5, 2, 7) - } - - components: [ - light4.light, - light4.transform, - sceneLayer - ] - } } diff --git a/tests/manual/deferred-renderer-qml/ScreenQuadEntity.qml b/tests/manual/deferred-renderer-qml/ScreenQuadEntity.qml index 6c5284d5e..3dae2b79a 100644 --- a/tests/manual/deferred-renderer-qml/ScreenQuadEntity.qml +++ b/tests/manual/deferred-renderer-qml/ScreenQuadEntity.qml @@ -42,23 +42,95 @@ import Qt3D.Render 2.0 import Qt3D.Extras 2.0 Entity { + id: root + readonly property Layer layer: screenQuadLayer + property PointLight baseLight + property vector3d light1Pos + property vector3d light2Pos + property vector3d light3Pos + property vector3d light4Pos - components : [ - Layer { id: screenQuadLayer }, + Entity { + components: [ + baseLight, + layer + ] + } - PlaneMesh { - width: 2.0 - height: 2.0 - meshResolution: Qt.size(2, 2) - }, + Entity { + readonly property Transform transform1 : Transform { translation: root.light1Pos } + readonly property PointLight light1 : PointLight { + color : "dodgerblue" + intensity : 0.9 + } + components: [ + transform1, + light1, + layer + ] + } - Transform { // We rotate the plane so that it faces us - rotation: fromAxisAndAngle(Qt.vector3d(1, 0, 0), 90) - }, + Entity { + readonly property Transform transform2 : Transform { translation: root.light2Pos } + readonly property PointLight light2 : PointLight { + color : "green" + intensity : 0.5 + } + components: [ + transform2, + light2, + layer + ] + } + + Entity { + readonly property Transform transform3 : Transform { translation: root.light3Pos } + readonly property PointLight light3 : PointLight { + color : "white" + intensity : 2.0 + } + components: [ + transform3, + light3, + layer + ] + } - Material { - effect : FinalEffect {} + Entity { + readonly property Transform transform4 : Transform { translation: root.light4Pos } + readonly property PointLight light4 : PointLight { + color : "white" + intensity : 0.5 } - ] + components: [ + transform4, + light4, + layer + ] + } + + // We need to have the actual screen quad entity separate from the lights. + // If the lights were sub-entities of this screen quad entity, they would + // be affected by the rotation matrix, and their world positions would thus + // be changed. + Entity { + components : [ + Layer { id: screenQuadLayer }, + + PlaneMesh { + width: 2.0 + height: 2.0 + meshResolution: Qt.size(2, 2) + }, + + Transform { // We rotate the plane so that it faces us + rotation: fromAxisAndAngle(Qt.vector3d(1, 0, 0), 90) + }, + + Material { + effect : FinalEffect {} + } + ] + } } diff --git a/tests/manual/deferred-renderer-qml/main.qml b/tests/manual/deferred-renderer-qml/main.qml index 790911723..8b97bb671 100644 --- a/tests/manual/deferred-renderer-qml/main.qml +++ b/tests/manual/deferred-renderer-qml/main.qml @@ -74,7 +74,14 @@ Entity { FirstPersonCameraController { camera: sceneEntity.camera } - ScreenQuadEntity { id: screenQuadEntity } + ScreenQuadEntity { + id: screenQuadEntity + baseLight: sceneEntity.light + light1Pos: sceneEntity.light1Pos + light2Pos: sceneEntity.light2Pos + light3Pos: sceneEntity.light3Pos + light4Pos: sceneEntity.light4Pos + } SceneEntity { id: sceneEntity } GBufferDebugger { id: debugEntity } } |