问题标签 [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.
c++ - 如何在 QML 场景上绘制 3D 线?
我尝试将 Bullet Physics 的调试绘图接口集成到 QML 中,所以我必须实现一个drawLine()
方法。
我尝试的是从 QQuickItem3D 和 btIDebugDraw 继承了一个在场景中使用的项目。在drawLine()
中,我将线条添加到成员向量。在 Qt'sdrawItem()
中,我遍历这些线条并使用 OpenGL 调用来渲染它们。但是,它们不会出现在屏幕上。
如何在 3D 空间和正确的相机视图中绘制线条?
qt - 使用 QT 和 QML 如何围绕特定原点旋转网格
我已经从搅拌机中导入了几个 3D 网格以形成一个人形,我想围绕特定的原点旋转手臂网格,使其看起来像手臂的正常运动。为了显示网格,它需要包含在Entity
类中,尽管我不能使用Rotation
实体类内部的属性,origin
它本身具有属性。如果有办法围绕特定点旋转网格?
下面是我的代码。我必须旋转肩部网格,但它不会围绕特定的原点旋转,因此它的旋转与正常的身体运动不匹配
qt - QT Quick3D:View3D 在编辑器中显示模型,但如果我运行应用程序,我看不到我的模型
我尝试使用 QT Quick 3D 并希望使用 View3D 显示一个简单的 3D 模型。我导入了我的模型并将其设置为我的 View3D 的源。之后我可以在编辑器中看到我的模型。但如果我运行应用程序,我就看不到我的 3d 模型。这可以在我链接到这篇文章的图片中看到。
在这里你可以看到我的绿色 3d 模型显示在编辑器中
但是,如果我运行我的程序,则窗口中缺少模型
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 中的纹理为纯黑色...
qt - QtQuick3D / Qt Design Studio GLTF import Material 看起来不对
我为 Blender 找到了这个不错的汽车座椅,然后将整个场景导出为 GTLF2.0,并通过 Qt Design Studio 作为 QML Asset 导入。
我遇到了一些时间轴问题,我手动修复了这个问题,但是如图所示,一个材质看起来有问题。
我使用 GLTF Onlineviewer链接检查了相同的 GLTF2.0 文件,看起来与 Blender 相同。
之后我检查了其他 GLTF Onlineviewer Link,在这里我遇到了同样的问题。
问题:
- 有人知道或提示我哪个值可能是麻烦制造者吗?
- 是不是雷电问题?
生成的 Qml 文件:
c++ - 是否可以使用 QML Quick3D View3D 动态加载 .OBJ 文件?
我在 QML (Qt 5.15/6.0.0) 中加载和显示 3D 模型 (.obj) 时遇到问题。我尝试了以下 3 种技术,但它们似乎都有独特的问题。
将 QQuickItem 和 OpenGL 与我自己的 .obj 加载器一起使用。这可以工作,但我想利用 Qt 提供的强大功能,如质量渲染、assimp 模型加载以及远离 OpenGL 特定绘制代码的潜力。
Qt3D模块中的 Scene3D。这有效,但它在退出时崩溃。我已经尝试了建议的解决方法,但它们都无法防止崩溃,或者如果我确实阻止了崩溃,那么我的模型无法正确加载或显示。
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 文件吗?
qt - 自定义 QQuick3DGeometry 不显示
尝试为 QtQuick3D 实现自定义几何图形:
mycustomgeometry.h:
mycustomgeometry.cpp:
main.qml:
立方体和球体(在评论geometry:
和取消评论时source:
)正确显示。
但是具有自定义几何形状的模型没有。
我也尝试使用 16 位整数作为索引,但得到了相同的结果。
编辑:在 Qt 6.0.0 上测试并且可以工作,所以这是一个仅限于 Qt 5.15.2 的问题
qt - Qt Quick3D:在两点之间绘制一条 3D 线
我正在使用来自 Qt6 的新 QtQuick3D。我需要在两点之间画一条线,但没有找到专门用于此的功能。因此我决定使用一个可以缩放和旋转的基本圆柱体。缩放按预期工作,但旋转存在一些问题。
我使用 Eigen 库计算旋转,通过角度轴检索欧拉角。显示时圆柱轴在 Y 轴上。
计算欧拉角时我犯错了吗?我应该使用另一种技术,比如四元数吗?也许还有一个我不知道的更简单的解决方案。
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 在这种情况下是否有帮助。先感谢您。