Qt Quick 3D - View3D 示例

演示了如何使用 View3D 从多个相机展示场景。

本示例演示了在一个应用中使用四个单独的 View3D 并使用不同的相机。

定义摄像头

首先,我们定义 摄像头。我们将定义几个不同的摄像头,尽管我们只添加 4 个视图。我们这样做是因为我们想要能够切换其中一个视图中的摄像头。

摄像头必须在根 节点 内定义。这是摄像头定义的方式

Node {
    id: standAloneScene
    ...
// The predefined cameras. They have to be part of the scene, i.e. inside the root node.
// Animated perspective camera
Node {
    PerspectiveCamera {
        id: cameraPerspectiveOne
        z: 600
    }

    PropertyAnimation on eulerRotation.x {
        loops: Animation.Infinite
        duration: 5000
        to: -360
        from: 0
    }
}

// Stationary perspective camera
PerspectiveCamera {
    id: cameraPerspectiveTwo
    z: 600
}
    ...
// Stationary orthographic camera viewing from left
OrthographicCamera {
    id: cameraOrthographicLeft
    x: -600
    eulerRotation.y: -90
}
}

添加视图

在定义了摄像头之后,我们可以添加 视图。我们将屏幕分为四部分,并且逐一添加视图

// The views
Rectangle {
    id: topLeft
    anchors.top: parent.top
    anchors.left: parent.left
    width: parent.width * 0.5
    height: parent.height * 0.5
    color: "#848895"
    border.color: "black"

    View3D {
        id: topLeftView
        anchors.fill: parent
        importScene: standAloneScene
        camera: cameraOrthographicFront
    }

    Label {
        text: "Front"
        anchors.top: parent.top
        anchors.left: parent.left
        anchors.margins: 10
        color: "#222840"
        font.pointSize: 14
    }
}
    ...

右上角的视图中有三个按钮。这些按钮可以在运行时切换该视图中使用的摄像头。切换是通过设置摄像头属性来完成的

RoundButton {
    text: "Camera 1"
    highlighted: topRightView.camera == cameraPerspectiveOne
    onClicked: {
        topRightView.camera = cameraPerspectiveOne
    }
}
    ...

文件

© 2024 The Qt Company Ltd. 本文件中所包含的文档贡献由其各自的所有者拥有著作权。本文档是根据 Free Software Foundation 发布的 GNU Free Documentation License 第 1.3 版 的条款许可的。Qt 和相关商标是 The Qt Company Ltd. 在芬兰以及世界其他国家的商标。所有其他商标均为其各自所有者的财产。