問題タブ [qt3d]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt - QML Sceneloader と LayerFilter
SceneLoader
でロードしたオブジェクトをレイヤに追加するにはどうすればよいですか?
私のQMLプロジェクトでは、レイヤーフィルターを適用して、特定のものをいくつかのレイヤーに表示し、他のレイヤーに他のものを表示しています...
次の方法でレイヤーにメッシュを追加できます。
しかし、3ds (で変換された) オブジェクトSceneLoader
を使用したいので、 でロードされたもので同じことを行う方法がわかりません。qgtfl
例えば
動作しません。また、これまでに試した他の順列もありません。(レイヤで定義する、 で定義するLayerFilter
、エンティティでラップするSceneLoader
、コンポーネントとともにエンティティに配置するなど)
c++ - 最後に作成された Qt3DCore::QEntity が常にシーン ビューの前景にあるのはなぜですか?
シーンで、Qt3D
3D オブジェクトが空間位置に従って表示されません。QEntity
カメラをどのように回転させても、最後に作成されたものは常に前景にあります。私の例では、カメラ設定で指定されたデフォルトのビューでQEntity
redBigSphere
空間的に後ろに配置されていても、 は常に前景にあります。smallGreenSphere
main.cpp
:
(結果の画像: http://imgur.com/a/A7tIW )
インスタンス化の順序を入れ替えると、smallGreenSphere
常にフォアグラウンドになります。
(結果の画像: http://imgur.com/a/fygTU )
インスタンス化の順序に関係なく、正しい 3D ビューを取得するにはどうすればよいですか?
私はQtとQt3Dが初めてなので、回答でこれを考慮してください。(私の評判が低いため、画像へのリンクのみを提供できます。)
qt - Qt3D でエンティティを追加および削除するとクラッシュする
実行時に作成および削除する必要があるエンティティがあります。エンティティには、マテリアルとメッシュ コンポーネントしかありません。マテリアルは QTextureImage を使用した QDiffuseMapMaterial です。
エンティティがシーンから追加および削除を開始すると、次のアサートでアプリケーションがクラッシュすることがあります。
qt_assert: ASSERT: ファイル内の "img != nullptr" ../../include/Qt3DRender/5.8.0/Qt3DRender/private/../../../../../src/render/texture /apitexturemanager_p.h、286行目
しかし、残念ながら、なぜそれが起こるのかわかりません。私はこの方法でエンティティを追加しています:
そして、次のように削除します。
_rootEntity
cpp コードで定義されたシーン ルート エンティティです。Scene3D を使用して QML ファイルで定義されたシーン:
そして_rootEntity
、このように渡しました:
context->setContextProperty("rootEntity", _rootEntity);
必要に応じて、問題を再現する簡単な例を用意できます。
ありがとう。