问题标签 [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 投票
2 回答
2197 浏览

qt - QT3D如何显示点?

Qt3D 可以很容易地显示一些网格图元:

但我只想显示一组点。我没见过类似的

有没有办法在不编写较低级别的 OpenGL 的情况下做到这一点?

0 投票
1 回答
2154 浏览

qml - QML 将纹理应用于网格

我正在尝试将图像纹理应用于 QML(Qt 5.6.2)中的网格。我从示例“Shadow Map QML”开始,我想对 GroundPlane 进行纹理处理。Material 和 Effect qml 类应用于 GroundPlane 网格,但我看不到如何应用图像纹理。在 QML 中,有 TextureImage、ShaderEffect,但没有关于如何将它们应用于 Mesh。有任何想法吗?

编辑:Qt 5.6.2 不是使用 Qt3D 的好版本,因为第一个“完全支持的稳定 Qt 3D 模块版本”是在 Qt 5.7 中。所以,我现在看看 Qt 5.7,也许是 5.8!乍一看,网格有一些纹理属性。

0 投票
1 回答
1643 浏览

qt - Qt3d 使用 QSceneLoader 和 qt 5.8

我尝试使用 QSceneLoader 加载在外部编辑器中创建的 3d 场景未成功。而且我总是在加载阶段得到断言。我使用 OBJ 模型 qt 的示例,它很容易加载为 QMesh。

测试回购https://bitbucket.org/ibnz/test_qt3d

Qt3DRender::QSceneLoader::Status(Loading) 断言:文件 io\qsceneloader.cpp 中的“entities.size() == 1”,第 215 行调试错误!

程序:C:\Qt\Qt5.8.0\5.8\msvc2015\bin\Qt5Cored.dll 模块:5.8.0 文件:global\qglobal.cpp 行:3070

断言:文件 io\qsceneloader.cpp 中的“entities.size() == 1”,第 215 行

(按重试调试应用程序)Qt3DRender::QSceneLoader::Status(Ready)

0 投票
2 回答
884 浏览

c++ - Qt3D 中的 QPaintedTextureImage (Qt 5.8)

我想用 Qt3D 创建一个具有自定义图像作为纹理的实体。我遇到了QPaintedTextureImage(链接指向 Qt 5.9 版本以获取详细信息。这里是 5.8 的 ist doc),它可以用 QPainter 编写,但我不明白如何编写。首先,这就是我想象的实体的样子:

[编辑]:代码已编辑并现在可以使用!

TextureImage 是具有绘画功能的子类 QPaintedTextureImage:

如果我只想在planeEntity上画一个大圆圈,那么传递给paint函数的QPainter在paint的实现中需要做什么?

[编辑] 实施:

0 投票
1 回答
437 浏览

c++ - Qt3d 广告牌

我正在尝试在 Qt 5.8 C++ 中实现广告牌。我想让一个实体在我四处走动时面对相机。我有一个相机、第一人称控制和一个带有 QTransform、QDiffuseMapMaterial 和 QPlaneMesh 的平面实体。我做了一些尝试,没有在 openGL 教程中找到的矩阵乘法,因为我认为 Qt3D 中可能有更简单的解决方案。

在第一种方法中,平面面向相机(或多或少),但没有向上矢量,因此它通常是颠倒的。

在第二种方法中,我使用了 QMatrix4x4::lookAt(const QVector3D &eye, const QVector3D ¢er, const QVector3D &up) 因为我听起来正是我需要的,但是一旦我移动,飞机就会消失。我用 QQuterions 尝试了更多的东西,但我对数学和可能性有点不知所措

0 投票
1 回答
406 浏览

c++ - 获取加载的 qmesh (c++) 的几何数据

我的问题:我将 3D 模型加载到 QMesh 中:

这目前有效。

现在我搜索一个函数,它给我对象的几何数据,特别是:中点、角

最后,我想将加载的 3D 模型转换为相机的视点。

我使用 qt 5.8。有谁能帮助我吗?提前致谢

0 投票
1 回答
488 浏览

c++ - 3D visualization of cylindrical trajectory

As Qt developers know, in new Qt version, Qt 3D has been extended a lot. QtDataVisualization, Qt3DCore, Qt3DExtras and so on are the new examples have recently been added in Qt.

Because there are only a few examples of 3D, I ask about that. I have in mind to draw a 3D visualization of cylindrical trajectory as shown in the picture. Is it possible in Qt? Is it worth to spend my time to learn that?

enter image description here

0 投票
1 回答
326 浏览

qt - Qt3D QML 读取 FBO

我想知道是否可以从 Qt3D 中的 FBO 读取数据?我有 2 个渲染通道,一个保存在纹理中,另一个渲染在屏幕上。我想从纹理中读取像素,但到目前为止我还没有运气。

将不胜感激任何输入!

编辑:这是阴影贴图示例中的 RenderSettings 对象的一些代码。我要做的是在 pass 之后读取 shadowmapTexture 的某个位置。例如,在某个 x,y 位置上单击鼠标后,读取同一 x,y 位置上的 Texture2D 的数据。

0 投票
1 回答
172 浏览

qml - 带有几个键的 QT3D QML RenderPassFilter 似乎有问题

我刚开始使用 QML 创建 QT3D 场景。我想过滤使用 RenderPassFilter 渲染场景的哪些元素。这是我非常简单的渲染器:

这会正确显示包含FilterKey{name: "type"; value: "filter1"}

用另一个过滤器替换它就可以了:

将显示带有过滤器值的对象集,filter2而不是filter1

现在我的问题是 matchAny 字段是一个列表,所以我希望它能够获取多个元素。不幸的是,以下内容根本不显示任何元素

我希望这可以渲染所有具有 valuefilter1或 value的元素filter2。实现这一目标的方法是什么?

编辑:我刚刚意识到,在发布此内容时,这matchAny可能与我的意思相反:元素中的任何过滤器键都必须匹配 matchAny 列表中的内容(但所有列表都必须匹配)......如果这是有道理的。无论如何,问题仍然存在:如何使用 RenderPassFilter 来允许包含filter1or的元素filter2

0 投票
1 回答
503 浏览

android - 安卓上的 Qt3D

是否可以在 android 上使用纯 C++ 运行 Qt 3D?所有 C++ 示例,如基本形状 C++ 示例,在 .pro 文件中都有以下条目:

我编写了一个与示例非常相似但更小的应用程序。它只是一个带有一个实体和一些组件的 Qt3DWindow。它适用于我的笔记本电脑(Windows 8.1),但它在我的 AVD 上崩溃。
我尝试了一些 Nexus 和 Pixel AVD,其 API 范围从 23 到 25,并带有软件和硬件图形渲染。

我按照指南设置 QtCreator 2.3.0,我使用的是 Qt 5.9.0-X86-rc。所有 android 示例都运行良好。

这是应用程序输出:

我的艺术:没有后期启用-Xcheck:jni(已经打开)
W系统:ClassLoader引用了未知路径:
I QtCore:启动
W链接器:/data/app/org.qtproject.example-2/lib/x86/libQt5Gui.so :未使用的 DT 条目:类型 0x1d arg 0x53bd4
W 链接器:/data/app/org.qtproject.example-2/lib/x86/libQt5Gui.so:不支持的标志 DT_FLAGS_1=0x81
W 链接器:/data/app/org.qtproject。 example-2/lib/x86/libQt5Network.so:未使用的 DT 条目:类型 0x1d arg 0x13595
W 链接器:/data/app/org.qtproject.example-2/lib/x86/libQt5Network.so:不支持的标志 DT_FLAGS_1=0x81
W链接器:/data/app/org.qtproject.example-2/lib/x86/libQt53DCore.so:未使用的 DT 条目:类型 0x1d arg 0xd8b1
W链接器:/data/app/org.qtproject.example-2/lib/x86/libQt53DCore.so:不支持的标志 DT_FLAGS_1=0x81
W 链接器:/data/app/org.qtproject.example-2/lib/x86/libQt5Concurrent .so:未使用的 DT 条目:类型 0x1d arg 0xbb2
W 链接器:/data/app/org.qtproject.example-2/lib/x86/libQt5Concurrent.so:不支持的标志 DT_FLAGS_1=0x81
W 链接器:/data/app/org。 qtproject.example-2/lib/x86/libQt53DRender.so:未使用的 DT 条目:类型 0x1d arg 0x2a36b
W 链接器:/data/app/org.qtproject.example-2/lib/x86/libQt53DRender.so:不支持的标志 DT_FLAGS_1= 0x81
W 链接器:/data/app/org.qtproject.example-2/lib/x86/libQt5Gamepad.so:未使用的 DT 条目:类型 0x1d arg 0x2f36
W 链接器:/data/app/org.qtproject.example-2/lib/x86/libQt5Gamepad.so:不支持的标志 DT_FLAGS_1= 0x81
W 链接器:/data/app/org.qtproject.example-2/lib/x86/libQt53DInput.so:未使用的 DT 条目:类型 0x1d arg 0xadb2
W 链接器:/data/app/org.qtproject.example-2/lib/x86/libQt53DInput.so:不支持的标志 DT_FLAGS_1=0x81
W 链接器:/data/app/org.qtproject.example-2/lib/x86/libQt53DLogic .so:未使用的 DT 条目:类型 0x1d arg 0x19c4
W 链接器:/data/app/org.qtproject.example-2/lib/x86/libQt53DLogic.so:不支持的标志 DT_FLAGS_1=0x81 W 链接器:/data/app/org。 qtproject.example-2/lib/x86/libQt53DExtras.so:不支持的标志 DT_FLAGS_1=0x81 W 链接器:/data/app/org.qtproject.example-2/lib/x86/libQt5Widgets.so:未使用的 DT 条目:类型 0x1d arg 0x6bf99 W 链接器:/data/app/org.qtproject.example-2/lib/x86/libQt5Widgets.so:不支持的标志 DT_FLAGS_1=0x81
W 链接器:/data/app/org.qtproject.example-2/lib/x86/libQt53DExtras.so:未使用的 DT 条目:类型 0x1d arg 0x11617



W 链接器:/data/data/org.qtproject.example/qt-reserved-files/plugins/platforms/android/libqtforandroid.so:未使用的 DT 条目:类型 0x1d arg 0x8747
W 链接器:/data/data/org.qtproject。示例/qt-reserved-files/plugins/platforms/android/libqtforandroid.so:不支持的标志 DT_FLAGS_1=0x81 W 链接器:/data/data/org.qtproject.example/qt-reserved-files/plugins/bearer/libqandroidbearer.so :未使用的 DT 条目:类型 0x1d arg 0x16dd W 链接器:/data/data/org.qtproject.example/qt-reserved-files/plugins/bearer/libqandroidbearer.so:不支持的标志 DT_FLAGS_1=0x81 W 链接器:/data/data/ org.qtproject.example/qt-reserved-files/plugins/gamepads/libandroidgamepad.so:未使用的 DT 条目:类型 0x1d arg 0x1223
I Qt:qt 启动



W 链接器:/data/data/org.qtproject.example/qt-reserved-files/plugins/gamepads/libandroidgamepad.so:不支持的标志 DT_FLAGS_1=0x81
W 链接器:/data/app/org.qtproject.example-2/lib /x86/libandroid_test.so:未使用的 DT 条目:类型 0x1d arg 0x6f6 D:HostConnection::get() 已建立新主机连接 0xaa93bd80,tid 5833 D:HostConnection::get() 已建立新主机连接 0xaa93bf80,tid 5854 I OpenGLRenderer:初始化的 EGL,版本 1.4 W OpenGLRenderer:无法选择带有 EGL_SWAP_BEHAVIOR_PRESERVED 的配置,正在重试... W 链接器:/data/data/org.qtproject.example/qt-reserved-files/plugins/sceneparsers/libgltfsceneimport.so:未使用的 DT条目:类型 0x1d 参数 0x3816
D OpenGLRenderer:使用 EGL_SWAP_BEHAVIOR_PRESERVED:true





W 链接器:/data/data/org.qtproject.example/qt-reserved-files/plugins/sceneparsers/libgltfsceneimport.so:不支持的标志 DT_FLAGS_1=0x81 D:HostConnection::get() 新主机连接已建立 0xaa305c00,tid 5855 F libc:致命信号 11(SIGSEGV),代码 1,tid 5862(QtThread) “org.qtproject.example”中的故障地址 0x4 死亡。
D:HostConnection::get() 新主机连接已建立 0x9ed4a8c0,tid 5862