2017-07-28 44 views
0

私は最近、Qt/QML/C++の学習を開始し、非常に基本的な3Dシーンを構築して、メッシュオブジェクトの周りでカメラを回転させようとしています。Qt3Dメッシュの周りのカメラを回転

私はこの例に従うのが非常に難しいと思っています。私はドキュメンテーションが有用な指示を提供していないことを発見しています。おそらく私は間違った場所を探しているでしょう。そこには多くのチュートリアルはありません。

main.cppに

#include <Qt3DQuickExtras/qt3dquickwindow.h> 
#include <Qt3DQuick/QQmlAspectEngine> 

#include <QGuiApplication> 
#include <QtQml> 

int main(int argc, char **argv) 
{ 
    QGuiApplication app(argc, argv); 
    Qt3DExtras::Quick::Qt3DQuickWindow view; 

    // Expose the window as a context property so we can set the aspect ratio 
    view.engine()->qmlEngine()->rootContext()->setContextProperty("_window", &view); 
    view.setSource(QUrl("qrc:/main.qml")); 
    view.setWidth(800); 
    view.setHeight(600); 
    view.show(); 

    return app.exec(); 
} 

main.qml

import Qt3D.Core 2.0 
import Qt3D.Render 2.0 
import Qt3D.Input 2.0 
import Qt3D.Extras 2.0 

Entity { 
    id: sceneRoot 

    Camera { 
     id: camera 
     projectionType: CameraLens.PerspectiveProjection 
     fieldOfView: 25 
     aspectRatio: _window.width/_window.height 
     nearPlane : 0.1 
     farPlane : 1000.0 
     position: Qt.vector3d(0, 0.0, 20.0) 
     upVector: Qt.vector3d(0.0, 1.0, 0.0) 
     viewCenter: Qt.vector3d(0.0, 0.0, 0.0) 
    } 

    OrbitCameraController { 
     camera: camera 
    } 

    components: [ 
     RenderSettings { 
      activeFrameGraph: ForwardRenderer { 
       clearColor: Qt.rgba(0, 0.5, 1, 1) 
       camera: camera 
      } 
     }, 
     InputSettings { } 
    ] 

    PhongMaterial { 
     id: carMaterial 
    } 

    Mesh { 
     id: carMesh 
     source: "resources/aventador.obj" 
    } 

    Entity { 
     id: carEntity 
     components: [ carMesh, carMaterial ] 
    } 
} 

にはどうすればカメラはメッシュオブジェクトの周りを回転するのですか?

+0

に変更してください。あなたは何も質問はしていません。あなたはコードを持っています。コンパイル中にエラーがありますか?あなたが望むことはしませんか?疑問がなければ答えられません。 – Aziuth

+0

カメラのビュー中心を回転させたい点に設定しますか? – peppe

答えて

0

OrbitCameraControllerを使用すると、カメラを軌道経路に沿って移動できます。メッシュの周りを回転させるには、カメラのviewCenterをメッシュの位置(メッシュを含むエンティティの変換の翻訳)に設定し、キーボード/マウスを使用して回転させます。

Transform{ 
     id: carTransform 
     translation: Qt.vector3d(5.0, 5.0, 5.0) //random values, choose your own 
} 

をし、企業の構成要素に変換を追加します。

ので、追加します。 カメラのビューセンターを

viewCenter: carTransform.translation 
関連する問題