问题标签 [qtquick3d]

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 回答
906 浏览

c++ - 如何在 QML 场景上绘制 3D 线?

我尝试将 Bullet Physics 的调试绘图接口集成到 QML 中,所以我必须实现一个drawLine()方法。

我尝试的是从 QQuickItem3D 和 btIDebugDraw 继承了一个在场景中使用的项目。在drawLine()中,我将线条添加到成员向量。在 Qt'sdrawItem()中,我遍历这些线条并使用 OpenGL 调用来渲染它们。但是,它们不会出现在屏幕上。

如何在 3D 空间和正确的相机视图中绘制线条?

0 投票
1 回答
984 浏览

qt - 使用 QT 和 QML 如何围绕特定原点旋转网格

我已经从搅拌机中导入了几个 3D 网格以形成一个人形,我想围绕特定的原点旋转手臂网格,使其看起来像手臂的正常运动。为了显示网格,它需要包含在Entity类中,尽管我不能使用Rotation实体类内部的属性,origin它本身具有属性。如果有办法围绕特定点旋转网格?

下面是我的代码。我必须旋转肩部网格,但它不会围绕特定的原点旋转,因此它的旋转与正常的身体运动不匹配

0 投票
0 回答
157 浏览

qt - QT Quick3D:View3D 在编辑器中显示模型,但如果我运行应用程序,我看不到我的模型

我尝试使用 QT Quick 3D 并希望使用 View3D 显示一个简单的 3D 模型。我导入了我的模型并将其设置为我的 View3D 的源。之后我可以在编辑器中看到我的模型。但如果我运行应用程序,我就看不到我的 3d 模型。这可以在我链接到这篇文章的图片中看到。

在这里你可以看到我的绿色 3d 模型显示在编辑器中

但是,如果我运行我的程序,则窗口中缺少模型

0 投票
0 回答
159 浏览

qt - 如何在 Quick3d 中使用图像控制节点的纹理大小?

我正在 Qt 5.15 上试验 QtQuick3D。嵌入 QtQuick 的功能Item非常棒。我喜欢创建一个矩形(100 x 100 单位)并用Image(1000 x 1000 像素)填充它。

当我定义 aMaterial并分配它时效果很好(参见 Model okButCodeSpread,屏幕截图中的右矩形),但它更多的是代码。

定义 aNode和嵌入a 的时间要短得多Image。但是,在这种情况下,我很难控制纹理的大小。无论我尝试什么,它都是模糊的。请参阅屏幕截图中的模型doesNotWork和左侧矩形。

Image我通过放大和缩小找到了解决方法Node。请参阅屏幕截图中的模型okButUgly,中间矩形。

有什么想法可以为 Model 获得清晰的纹理doesNotWork吗?

另外,如何隐藏用于定义 2D 的图像Material?将可见属性设置为 false 会导致 3D 中的纹理为纯黑色...

截屏

0 投票
1 回答
149 浏览

qt - QtQuick3D / Qt Design Studio GLTF import Material 看起来不对

我为 Blender 找到了这个不错的汽车座椅,然后将整个场景导出为 GTLF2.0,并通过 Qt Design Studio 作为 QML Asset 导入。

我遇到了一些时间轴问题,我手动修复了这个问题,但是如图所示,一个材质看起来有问题。

问题1

我使用 GLTF Onlineviewer链接检查了相同的 GLTF2.0 文件,看起来与 Blender 相同。

好的

之后我检查了其他 GLTF Onlineviewer Link,在这里我遇到了同样的问题。

问题2

问题:

  • 有人知道或提示我哪个值可能是麻烦制造者吗?
  • 是不是雷电问题?

生成的 Qml 文件:

0 投票
1 回答
618 浏览

c++ - 是否可以使用 QML Quick3D View3D 动态加载 .OBJ 文件?

我在 QML (Qt 5.15/6.0.0) 中加载和显示 3D 模型 (.obj) 时遇到问题。我尝试了以下 3 种技术,但它们似乎都有独特的问题。

  1. 将 QQuickItem 和 OpenGL 与我自己的 .obj 加载器一起使用。这可以工作,但我想利用 Qt 提供的强大功能,如质量渲染、assimp 模型加载以及远离 OpenGL 特定绘制代码的潜力。

  2. Qt3D模块中的 Scene3D。这有效,但它在退出时崩溃。我已经尝试了建议的解决方法,但它们都无法防止崩溃,或者如果我确实阻止了崩溃,那么我的模型无法正确加载或显示。

  3. Quick 3D 中的View3D。这似乎是最好的选择,但缺点似乎是我需要使用 balsam 预处理 obj 文件,以便将其转换为 qt .mesh 格式。我宁愿避免这一步,因为我希望用户能够加载他们自己的模型(obj、step 等)

需要能够设置网格和纹理源。这可以使用带有网格的 Scene3D,但我没有看到使用带有模型对象的 View3D 的相同选项。

理想情况下,我可以使用 qml Qt3D.Render::Mesh 项目或 Qt3DRender::QMesh 动态加载对象文件,然后使用该网格在 View3D 中渲染。或者使用加载模型的自定义 QQuick3DGeometry 并可以添加为 QtQuick3D::Mode.geometry。

我在这里遗漏了什么还是我试图混合两个不兼容的模块:Qt3D 和 Quick3D?可以将模型动态加载到 View3D 中而不将其转换为 .mesh 文件吗?

0 投票
0 回答
52 浏览

qt - 是否可以在 QML 的 Qt Quick 3D 中显示内存中的网格?

似乎我们必须使用Model'geometry属性,但唯一的子类Geometry似乎是GridGeometry

也许在 QML/JS 中处理这些数据不是一个(性能)明智的想法?

0 投票
1 回答
63 浏览

qt - 自定义 QQuick3DGeometry 不显示

尝试为 QtQuick3D 实现自定义几何图形:

mycustomgeometry.h:

mycustomgeometry.cpp:

main.qml:

立方体和球体(在评论geometry:和取消评论时source:)正确显示。

但是具有自定义几何形状的模型没有。

我也尝试使用 16 位整数作为索引,但得到了相同的结果。

编辑:在 Qt 6.0.0 上测试并且可以工作,所以这是一个仅限于 Qt 5.15.2 的问题

0 投票
0 回答
102 浏览

qt - Qt Quick3D:在两点之间绘制一条 3D 线

我正在使用来自 Qt6 的新 QtQuick3D。我需要在两点之间画一条线,但没有找到专门用于此的功能。因此我决定使用一个可以缩放和旋转的基本圆柱体。缩放按预期工作,但旋转存在一些问题。

我使用 Eigen 库计算旋转,通过角度轴检索欧拉角。显示时圆柱轴在 Y 轴上。

计算欧拉角时我犯错了吗?我应该使用另一种技术,比如四元数吗?也许还有一个我不知道的更简单的解决方案。

0 投票
1 回答
166 浏览

render - Qt5/Qt6 中的 Qt Quick 3D 自定义几何

我正在尝试在 Qt 5.15.2 ( https://doc-snapshots.qt.io/qt6-dev/qtquick3d-customgeometry-example.html ) 下构建一个带有自定义几何的示例项目,我得到了所有的 qml ui 元素,除了为网格。在 Qt 6 中,一切正常,并且渲染了网格。

我在上面附加的链接中看到该示例引用了 Qt 6,但是 QQuick3DGeometry 类为我们提供了自定义几何图形存在于 Qt5 中。请让我知道是否有机会使用 Qt 5.15 来渲染具有自定义几何图形的网格,以及 QQuick3DGeometry 在这种情况下是否有帮助。先感谢您。