QML之3D(一)—最简单的使用Demo

最简单的QML显示3D图形

Entity {
    id: sceneRoot
	//相机设置
    Camera {
        id: camera
        projectionType: CameraLens.PerspectiveProjection
        fieldOfView: 45
        aspectRatio: 16/9
        nearPlane : 0.1
        farPlane : 1000.0
        position: Qt.vector3d( 0.0, 0.0, -40.0 )
        upVector: Qt.vector3d( 0.0, 1.0, 0.0 )
        viewCenter: Qt.vector3d( 0.0, 0.0, 0.0 )
    }
	//配置相关设置
    components: [
        RenderSettings {
            activeFrameGraph: ForwardRenderer {
                clearColor: Qt.rgba(0, 0.5, 1, 1)
                camera: camera
            }
        },
        // Event Source will be set by the Qt3DQuickWindow
        InputSettings { }
    ]
	//材质设置
    PhongMaterial {
        id: material
    }
	//网格
    TorusMesh {
        id: torusMesh
        radius: 5
        minorRadius: 1
        rings: 100
        slices: 20
    }
	//实体
    Entity {
        id: torusEntity
        components: [ torusMesh, material ]
    }


}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一个简单QML 3D 实例工程,您可以在其中学习如何使用 QML 3D。 首先,我们需要在项目中包含 Qt 3D 模块。在 .pro 文件中添加以下行: ``` QT += 3dcore 3drender 3dinput ``` 接下来,我们可以创建一个 `main.qml` 文件,在其中添加以下代码: ```qml import Qt3D.Core 2.0 import Qt3D.Render 2.0 import Qt3D.Input 2.0 import QtQuick 2.12 import QtQuick.Window 2.12 import QtQuick.Controls 2.12 import QtQuick.Layouts 1.12 Window { visible: true width: 640 height: 480 title: "QML 3D Example" Entity { id: rootEntity components: [ Transform { translation: Qt.vector3d(0, 0, -10) }, Camera { id: camera projectionType: CameraLens.PerspectiveProjection fieldOfView: 45 aspectRatio: 1.0 nearPlane: 0.1 farPlane: 1000.0 position: Qt.vector3d(0, 0, 20) upVector: Qt.vector3d(0, 1, 0) viewCenter: Qt.vector3d(0, 0, 0) } ] BoxMesh { id: boxMesh xExtent: 2.0 yExtent: 2.0 zExtent: 2.0 } Material { id: material diffuse: "qrc:/textures/wood.jpg" } PhongMaterial { id: phongMaterial ambient: "white" diffuse: "white" specular: "white" shininess: 100 } components: [ boxMesh, material, phongMaterial ] } } ``` 在此示例中,我们创建了一个 `Window`,并向其中添加了一个 `Entity`,它包含一个 `BoxMesh`、`Material` 和 `PhongMaterial` 组件。我们还添加了一个 `Camera` 组件,以便可以从不同的角度查看场景。 在这个示例中,我们使用了一个 `BoxMesh`,它是一个简单的立方体。我们还使用了一个 `Material` 来设置立方体的纹理,以及一个 `PhongMaterial` 来设置光照效果。 此外,我们还在 `Transform` 组件中设置了立方体的位置,以便将其移动到屏幕中心。 在这个示例中,我们还使用了一个 wood.jpg 纹理,您可以将其添加到您的项目中,以便在立方体上显示纹理。 希望这个示例对您有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值