1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
|
// Copyright (C) 2019 Klaralvdalens Datakonsult AB (KDAB).
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import Qt3D.Core 2.0
import Qt3D.Render 2.0
import Qt3D.Extras 2.0
import Qt3D.Input 2.0
import QtQuick 2.0 as QQ2
import QtQuick 2.12
Entity {
id: sceneRoot
Camera {
id: camera
projectionType: CameraLens.OrthographicProjection
left: -2
right: 2
top: 2
bottom: -2
nearPlane: 0.1
farPlane: 1000.0
position: Qt.vector3d(0.0, 0.0, 1.0)
upVector: Qt.vector3d(0.0, 1.0, 0.0)
viewCenter: Qt.vector3d(0.0, 0.0, 0.0)
}
RenderTarget {
id: renderTargetFBO
attachments : [
RenderTargetOutput {
attachmentPoint : RenderTargetOutput.Color0
texture : Texture2DMultisample {
id : colorAttachment
width : scene3d.width
height : scene3d.height
format : Texture.RGBA8_UNorm
generateMipMaps : false
samples: 1
}
},
RenderTargetOutput {
attachmentPoint : RenderTargetOutput.Depth
texture : Texture2DMultisample {
width : scene3d.width
height : scene3d.height
format : Texture.D32F
generateMipMaps : false
samples: 1
}
}
]
}
components: [
RenderSettings {
activeFrameGraph: FrameGraph {
id: framegraph
camera: camera
fbo: renderTargetFBO
}
renderPolicy: RenderSettings.Always
}
]
Entity {
id: firstPassEntities
Entity {
components: [
Transform {
translation: Qt.vector3d(0,0,-2)
},
Material1 {
color: "red"
},
SphereMesh { }
]
}
Entity {
components: [
Transform {
translation: Qt.vector3d(1,0,-1)
},
Material2 {
color: "green"
},
SphereMesh { }
]
}
}
Entity {
id: secondPassEntities
components: [framegraph.layer]
Entity {
components: [
Transform {
translation: Qt.vector3d(0,0,-4)
scale: 0.5
},
Material1 {
ColorAnimation on color {
from: "black"
to: "purple"
duration: 2000
loops: Animation.Infinite
}
},
SphereMesh { }
]
}
Entity {
components: [
Transform {
translation: Qt.vector3d(1,0,-3)
scale: 0.5
},
Material2 {
color: "orange"
},
SphereMesh { }
]
}
}
PostProcess {
colorTexture: colorAttachment
}
}
|