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
|
// Copyright (C) 2017 Klaralvdalens Datakonsult AB (KDAB).
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
import Qt3D.Core 2.0
import Qt3D.Render 2.10
import Qt3D.Input 2.0
import Qt3D.Extras 2.0
import QtQuick 2.0 as QQ2;
Entity {
id: sceneRoot
property real width : 1
property alias smooth : lineWidth.smooth
Camera {
id: camera
projectionType: CameraLens.PerspectiveProjection
fieldOfView: 45
aspectRatio: 16/9
nearPlane : 0.1
farPlane : 1000.0
position: Qt.vector3d( 0.0, 0.0, 2.0 )
upVector: Qt.vector3d( 0.0, 1.0, 0.0 )
viewCenter: Qt.vector3d( 0.0, 0.0, 0.0 )
}
FirstPersonCameraController {
camera: camera
linearSpeed: 1.0
}
components: [
RenderSettings {
activeFrameGraph : RenderStateSet {
renderStates: [
PointSize {
value: sceneRoot.width
sizeMode: PointSize.Fixed
},
LineWidth {
id: lineWidth
value: sceneRoot.width / 3.0
}
]
ForwardRenderer {
camera: camera
clearColor: "black"
}
}
},
InputSettings {
}
]
SphereGeometry {
id: sphere
rings: 4
slices: 4
radius: 1
}
Entity {
components: [
GeometryRenderer {
// abuse PlaneGeometry to give us some lines
geometry: sphere
primitiveType: GeometryRenderer.LineStrip
},
PhongMaterial {
ambient: "white"
}
]
}
Entity {
components: [
GeometryRenderer {
// abuse PlaneGeometry to give us some points
geometry: sphere
primitiveType: GeometryRenderer.Points
},
PhongMaterial {
ambient: "red"
}
]
}
}
|