问题标签 [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 回答
2228 浏览

qt - QT3D中的透明对象

我需要能够更改 QT3D 中网格对象的透明度。我使用 Scene3D 组件作为包含默认 ForwardRenderer 的根。

我的 3D 对象由 Mesh、Transform 和 PhongMaterial 组成。

任何帮助将不胜感激。

0 投票
1 回答
209 浏览

qt - Qt3D ExtrudedTextMesh 不是一种类型

我在 Qt 5.9.1 for mac 中测试了这段代码,qtcreator 报错:ExtrudedTextMesh is not a type。

0 投票
1 回答
1320 浏览

qt3d - 如何改变 Qt3D OrbitCameraController 的行为,例如。鼠标左键旋转相机

默认 Qt3D OrbitCameraController 的行为是: - 鼠标左键移动相机。- 鼠标右键旋转相机。

我需要相反的解决方案,简单地旋转显示产品模型。C++ 代码或 AxisActionHandler 可能有效,但我不知道如何编写它。感谢帮助。

0 投票
3 回答
3940 浏览

c++ - Qt3D围绕网格旋转相机

我最近开始学习 Qt/QML/C++ 并尝试构建一个非常基本的 3D 场景来围绕网格对象旋转相机。

我发现很难遵循这些示例,并且我发现文档没有提供任何有用的说明。那里似乎也没有很多教程,也许我在寻找错误的地方。

主文件

main.qml

如何让相机围绕网格对象旋转?

0 投票
1 回答
5955 浏览

c++ - Qt3D:如何使用 Qt C++ 以线框模式渲染网格?

Qt3D 文档正在增加,但仍然缺乏一些信息,尤其是关于如何在没有 Qml/QtQuick 的情况下做事的信息。在网上大量搜索关于以线框模式渲染网格之后,我发现了许多有用的提示和示例,这些提示和示例共同产生了一个示例查看器,我想在这里展示它,作为对所有撰写文章的人和其他人的贡献可能搜索过类似的例子。

最有用的链接是:

Qt 基本形状示例

Qt 线框示例

Qt 材料文档

Qt MyCylinder 示例

关于在 Qt3DWindow 中使用事件过滤器的 Stackoverflow 问答:鼠标控制 Qt 3D 窗口

网格可以用鼠标旋转和缩放。

查看器的屏幕截图

欢迎对如何改进这一点提出任何意见。特别是,我对如何编写一个着色器程序很感兴趣,该程序可以用不同的颜色渲染正面和背面或渲染每个顶点的颜色。

这是代码:

0 投票
0 回答
332 浏览

qt3d - 如何用 qt 3d 做任何事情?

我对编程和 Qt 完全陌生。我阅读了有关 Qt 3d 的信息,但我不知道如何使用它。我只需要一个简单的长方体,我可以用倾斜传感器移动它。我正在使用 qt 5.6。

我试图理解这些例子,但他们总是使用我不知道的东西。

我也尝试复制此示例代码,但猜想,它不起作用。

0 投票
1 回答
236 浏览

qt - 延迟渲染如何从灯光贡献中排除网格

我已经使用 Qt3D 设置了延迟渲染管道。到目前为止一切顺利,但现在我想在场景中渲染的网格周围添加选择框。

不幸的是,选择框网格受到灯光的影响,我不希望这样(参见下面的“阴影”图片)。例如,我可能想将环境光强度设置为 0,并且选择框应该仍然可见。另一个例子是,如果我想在一个视口角显示典型的 X/Y/Z 指示器。

我有用于光贡献计算的典型光通着色器,(简而言之)是这样的:

如果我将 fragColor 行替换为:

我得到下面的非阴影图片,它显示了我想要的选择框的颜色。

是否有任何技巧或惯例可以从光通中排除特定网格?

我已经尝试用颜色 alpha = 0.123 等特殊值“欺骗”着色器,但它根本没有帮助。

阴影

在此处输入图像描述

无阴影

在此处输入图像描述

0 投票
2 回答
1105 浏览

c++ - 如何在 Qt3DWindow 的根实体中递归删除所有节点?

我想删除 Qt3DWindow 的根场景的所有根节点。它包含多个层次结构级别的节点。我想删除引用并删除对象。最简单的方法是什么?

0 投票
1 回答
2407 浏览

opengl - GLSL聚光灯投影体积

在我的开源项目中,我使用 Qt3D 设置了延迟渲染管道。到目前为止一切顺利,但现在我想通过添加聚光灯投影量来继续前进。(例如,好像场景中有烟雾) 像这样:

在此处输入图像描述

我正在使用的片段着色器位于问题的末尾。我已经读过,对于每个片段,我应该从灯光位置进行光线行进并找到与锥体的交叉点,但我不知道如何将其转换为 GLSL。我可以轻松地使用来自 GBuffer 的深度图(从相机的角度)添加制服,但我不知道这是否有帮助。

由于我的 GLSL 知识非常有限,请回复实际代码,而不是冗长的数学解释,我将无法理解/翻译成代码。请耐心等待我。

这是使用上面的原始着色器时聚光灯的样子: 在此处输入图像描述

[编辑 - 已解决] 感谢 Rabbid76 出色的回答和宝贵的支持

这是查看圆锥投影的修改代码:

传递给着色器的制服是:

截屏:

在此处输入图像描述

0 投票
1 回答
921 浏览

c++ - 如何在 Qt3D 中创建渐变背景?

我正在寻找创建渐变背景(例如从黑色到白色)的 C++ 代码。目前我通过设置Qt3DWindow的clear color只有一个纯色:

如何制作渐变?