如何从QML中正确处理Scene3D?

时间:2015-09-02 08:19:19

标签: qml qt5 qt3d

对于我的项目,我需要将QtQuick.Scene3D放在QtQuick.Component中 场景已成功创建,但当我尝试处理组件时,我会在

处获得段错误
0   Qt3D::QCamera::position() const 0xb7226e6b  
1   Qt3D::QCamera::translate(QVector3D const&, Qt3D::QCamera::CameraTranslationOption)  0xb7226fa4  

似乎对象以错误的顺序删除。所以,有一个问题:我应该用C ++实现整个对象图,还是有一种正确的方法可以让Scene3D重新创建?

我的组件qml文件:

import Qt3D 2.0
import Qt3D.Renderer 2.0
import QtQuick.Scene3D 2.0
import QtQuick 2.0 as QQ2
import CeGui 1.0;
import VectorPlot 1.0;

QQ2.Component {
    QQ2.Item {
        Scene3D {
            anchors.fill: parent
            id: rootscene
            aspects: "input"

            Entity {
                id: sceneRoot

                Camera {
                    id: camera
                    projectionType: CameraLens.PerspectiveProjection
                    fieldOfView: 45
                    aspectRatio: 16/9
                    nearPlane : 0.1
                    farPlane : 1000.0
                    position: Qt.vector3d( 25.0, -25.0, 25.0 )
                    upVector: Qt.vector3d( 0.0, 0.0, 1.0 )
                    viewCenter: Qt.vector3d( 0.0, 0.0, 0.0 )
                }

                Configuration  {
                    id: cfg
                    controlledCamera: camera
                }

                Viewport {
                    id: viewport
                    rect: Qt.rect(0.0, 0.0, 1.0, 1.0) // From Top Left
                    clearColor: Qt.rgba(0, 0.5, 1, 1)

                    CameraSelector {
                        id : cameraSelector
                        camera: camera
                        ClearBuffer {
                            buffers : ClearBuffer.ColorDepthBuffer
                        }
                    }
                }

                components: [
                    FrameGraph {
                        id: framgraph
                        activeFrameGraph: viewport
                    }
                ]

                BarChartScene {
                    id: bcs
                    model: GlobalViewModel.harmonicsEditModel
                }
            }
        }
    }
}

我在Linux中使用Qt 5.5 for 32位gcc

1 个答案:

答案 0 :(得分:3)

在即将发布的版本中似乎是known bug, which will be fixed