问题标签 [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.

0 投票
1 回答
924 浏览

qml - 如何从 QML 正确处理 Scene3D?

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

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

有我的组件 qml 文件:

我在 Linux 中将 Qt 5.5 用于 32 位 gcc

0 投票
1 回答
403 浏览

c++ - Qt3D 2.0 广告牌改造

自 Qt3D 1.0 以来,Billboard 转换已被弃用。现在它被替换为lookAt 转换。我在 Qt3D 上下文中创建了平面。(从此处找到的 Qt3D 示例中获取 并将 QLookAtTransform 添加到其中。但两者:

不给结果。飞机从现场消失。

在这里找到的类参考没有解释如何使用它。

QLookAtTransform 必须如何用于像广告牌转换一样?

0 投票
1 回答
221 浏览

c++ - 既然 Qt3D 说支持 Linux,我应该如何处理 Linux 上没有 window.h 的问题?

Qt3D 已被 Qt 5.5 正式支持。他们说支持Linux

我选择了一个assimp 示例,它的main.cpp包含 window.h。

我在 Ubuntu 14.04.3 上。我应该如何编译这个程序?

No such file or directory是我收到的错误。

我在 QtCreator 中的输出截图

0 投票
1 回答
830 浏览

qt - Qt 5.5 的 Qt3D 示例中的 ForwardRenderer 是什么?

Qt 5.5 的 Qt3d 的 Assimp 示例使用 ForwardRenderer

我复制了代码,并在main.qmlQtCreator 中显示该名称下的红线表示未知组件。点击那个词不会带我去任何地方。

该程序正在编译,没有任何错误,运行时只显示一个蓝色窗口。

什么是 ForwardRenderer?为什么那里有红线?

在此处输入图像描述

0 投票
1 回答
1840 浏览

pyqt5 - PyQt5 是否支持 Qt3D?

我对 PyQt 很陌生,但我刚刚升级到版本 5,期望我可以使用 Qt3D(Qt5 提供),但是当我尝试导入模块时,它总是说“未解决对 Qt3d 的引用” . 所以我在 PyQt 文档中搜索并且没有 Qt3D 模块的参考,因为我想知道:

  • 是否可以将 Qt3D 与 PyQt5 一起使用?
    • 如果是这样,我该怎么做?
    • 如果没有,我可以使用哪些其他库来对导入另一个程序(如 Blender)的 3D 模型进行 3D 可视化。

(我对 vPython 很感兴趣,但我不知道如何从另一个文件导入)

0 投票
0 回答
811 浏览

qt - 如何在声明式状态机框架中设置状态转换之间的可逆动画

我想将状态机用于 Qt3D 中的实体对象并在其状态之间制作过渡动画。

我知道 QML 中的两个状态机框架:

  1. Qt 快速状态
  2. 声明式状态机框架

第一个框架内置在 QQuickItem 中,它是 QtQuick 中所有可视项目的基类。所以这些元素具有状态机的属性,如状态、转换等。由于Entity没有继承QQuickItem,我只能使用第二个框架。

我希望我的实体有两种状态:可见和隐藏。当它具有“隐藏”状态时,实体将缩小到 0。如果它可见,它将放大到 1。这是我当前使用声明性状态机框架实现的实体状态:

它有效,但我想在过渡之间添加动画。使用 Qt Quick States 我可以像这样使用 Transition 元素:

但我不能使用它,因为 Entity 和 DSM.StateMachine 以及 DSM 框架的其他部分都不包含transitions属性。

我只看到快速而肮脏的解决方案 - 将 NumberAnimation 元素添加到每个状态的 onEntered 插槽:

有没有办法使用 Transition 或其他具有reversible属性的元素或某种方式来制作可逆动画,而无需为每个状态重新声明反向动画?

0 投票
1 回答
768 浏览

c++ - 使用 qt3d 渲染已经加载的网格

我有生成网格的代码,即作为3D 点N x 3的双精度数组和三角形的另一个整数数组。如何通过 qt3d 渲染这个网格(注意网格是生成的,因此不是从文件中加载的)?这项任务是如此基本,以至于看起来应该很简单,但似乎 qt3d 的文档很少。VM x 3F

0 投票
1 回答
210 浏览

qt - 未找到 CameraLens QML 组件 (M300)

我正在关注*这个例子:http ://doc.qt.io/qt-5/qt3drenderer-multiviewport-example.html

*将它逐行添加到新项目中,在我进行时查找每件事。

但是,找不到 CameraLens QML 组件。我正在使用 QT Creator 3.6.0。

这是.pro:

这是我的 QML:

据我所知,我使用的是 QT 5.5(这是我安装的唯一一个),该文档说应该包括 CameraLens:http ://doc.qt.io/qt-5 /qml-qt3d-cameralens.html

我不知道接下来要看什么或可能出了什么问题。

0 投票
0 回答
710 浏览

qt - 在 Qt3D 中,当使用 ID 向 Entity 添加组件时,会发生什么?

假编辑:对不起这个奇怪的标题。还不知道如何表达这个问题

上下文:通过这个例子工作: http: //doc.qt.io/qt-5/qt3drenderer-multiviewport-example.html,这个文件:http ://doc.qt.io/qt-5/qt3drenderer-multiviewport- main-qml.html

这是我正在查看的 QML 的稀疏版本:

所以我有这些问题:

1- ID 搜索是如何执行的?据推测,它首先检查本地上下文(因此找到了transform引用的 incameraViewport1而不是 in 的那个cameraViewport2),然后在树上继续前进(这将是它找到cameraLens组件的方式),但我无法找到文档确认或解释这一点。

2-是否只有一个cameraLens由两个cameraViewport实体共享?如,如果我访问并更改cameraLensthrough cameraViewport1,这些更改会影响cameraViewport2吗?基本上,它是通过值还是通过引用“传递”的?

我可能只是找不到文档;如果是这样,链接很好,带有如何找到它们的解释的链接更好!(还有更多我无法找到文档)

0 投票
2 回答
2089 浏览

c++ - Show Qt3D stuff inside QWidget in Qt5

So I felt all warm and fuzzy inside after reading that Qt3D has re-emerged in a v2.0 and is in fact becoming a part of Qt5 soon and that parts of it is already available for testing as a tech preview.

I set out with a simple plan, I would have Qt3D working inside a widget in my existing C++/widgets based application. However the only example I could find that shows how to use Qt3D from C++ is called basicshapes-cpp, and it shows some shapes rendered in a separate OpenGL/Qt3D prepared window (class that extends QWindow) as opposed from a QWidget.

Now I read about the role of QWindow vs. QWidget and how it all hangs together neatly, but I am still struggling to understand how I can port the Qt3D code from the basicshapes-cpp program to run inside a QWidget. What are the basic steps that need to observed?