问题标签 [qtopengl]
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++ - 如何组合同一物体手部扫描的多个点云
我正在做一个学校项目,我要做的一件事就是结合对同一物体的多次扫描。这些扫描或 .obj 文件,我想将它们组合起来以获得更好的扫描对象。
我在互联网上搜索解决方案,但我没有找到任何可接受的解决方案,所以如果有人只是有一个想法或跟踪,我将不胜感激。
如果您对我的问题有任何疑问,可以问我,也许我的英语不正确,我是法国人。
谢谢 !
qt - 当我使用 setUseOpenGL(true) 时,QChartSeries 的某些属性将被禁用
首先,我的 QT 环境是 5.12.0 和 MSVC 2017 64 位,我之前使用 5.10.0 和 MSVC 2017 64 位,但结果是一样的。
例如,在 QLineSeries 中,setPointsLabelVisible 和 setPointsVisible 将被禁用。在 QScatterSeries 中,setMarkerShape 将被禁用。就像我上传的图片一样。
图 1
在这张照片中我没有设置UseOpenGL(true)
pic 2
在这张图片中,我 setUseOpenGL(true) 和 markerShape 变成了块而不是带边缘的圆形。
我尝试在 setUseOpenGL(true) 之后设置这些属性,但它不起作用。
我想知道如何在使用 setUseOpenGL(true) 时启用这些属性。
c++ - 如何使用 glReadPixels 和 gluUnproject 生成正确的点坐标?
我正在使用 QGLWidget 和 QtOpenGL 来显示我的点云,并使用 glReadPixels 和 gluUnProject 从点云中选择一个点。问题是 glReadPixels 似乎没有选择我点的像素。
我尝试在 glReadPixels 中使用不同的点大小以及不同的块大小,但“射线”似乎穿过这些点。我想知道我是否需要计算光线的关闭点,因为它几乎不可能在该点上单击。
这些点是用(只是 origon 中的一个点的例子)绘制的
点拾取由下面的 getObejctCoords 函数完成。
在相机位置 (0,0,-50) 旋转:(0, 0) (通过单击几乎在原点处的点(但在点上),该函数产生以下输出
实际结果应该(据我所知)应该是
x: 0 y: -0.578724 z: -0
c++ - Qt QOpenGLWidget 在哪里?
我正在尝试编写一个使用 QOpenGLWidget 的 C++ 应用程序,但 Qt Creator 在这一行给出了“'QOpenGLWidget' file not found”错误:
文档说 QOpenGLWidget 是在 Qt 5.4 中引入的,我相信我正在运行 Qt 5.12.1;qmake --version
给出:
而且,在Qt Creator 菜单Tools -> Options... -> Kits 中也表示Qt 5.12.1。Qt Creator 允许我使用#include <QOpenGLWindow>
(也与 QOpenGLWidget 一起在 Qt 5.4 中引入)编译和链接 OpenGL 应用程序而不会出错。
我究竟做错了什么?QOpenGLWidget 在哪里?
c++ - Qtopengl,为什么不能使用不同的vbo绘制两个立方体
我在 QT 中使用 opengl,并想绘制一个彩色立方体和一个白色立方体(模拟光源)。我使用两个不同的着色器程序和两个不同的 vbo。但是,我发现我只能画一个立方体。该怎么办?
c++ - QOpenGLWidget 粉碎显示
QOpenGLWidget
我在一个QMainWindow
实例中嵌入了一个w
。编译没问题。但是在调试时,程序在w.show()
.
错误对话框说:
在 TestQtOpenGL.exe 中的 0x000007FEE5AF4469 (d3d11sdklayers.dll) 处引发异常:0xC0000005:访问冲突读取位置 0x00000806E5B03A98。
调用栈是:
一个演示:
环境:
- Qt 5.9.4 msvc2015 64bit
- 视觉工作室 2015
- Windows 7的
根据@Aleph0 的建议,我已经使用 [Visual Studio]->[Debug]->[Windows]->[Modules] 调查了加载的模块。但我没有发现任何可疑的 DLL。模块列表在此处上传。
c++ - 在 QOpenGLWidget 上的 update() 之前调用 glActiveTexture(GL_TEXTURE1) 会导致纹理显示为黑色
从QOpenGLWidget
and继承时QOpenGLFunctions_4_5_Core
,如果我glActiveTexture(GL_TEXTURE1)
在调用纹理之前调用(或任何其他非零数字)update()
,则屏幕上将显示完全黑色。
相关代码片段:
和主循环功能:
着色器仍然可以绘制到屏幕上;如果我在片段着色器中设置纯色,颜色将正确显示到屏幕上。似乎只有用户制作的纹理完全变黑了。
我没有收到任何 OpenGL 错误。
完整的 MRE 可以在以下位置找到:https ://github.com/Luminic/MRE_QOpenGLWidget_glActiveTexture_GL_TEXTURE1_before_update
有谁知道是什么导致了这种奇怪的行为?
opengl - 如何在 QT opengl 中将帧速率限制为 60fps
我曾经使用该函数来限制 GLFW 中的渲染帧速率。
现在我正在使用 Qt opengl 功能在 QT 中构建一个 Opengl 项目。
在主函数中,我设置了全局值。
这就是 Qt opengl 类头文件的样子。
在类的构造函数中
但是渲染循环仍然没有同步,Qdebug 值一直在 8 到 16 之间变化。
qt - 通过 QGraphicsScene 中的 addWidget 嵌入 QOpenGLWidget
前段时间我创建了一个子类QGraphicsView
,我称之为MultiWidget
. 它的目的是保存我使用的其他一些小部件,我使用 addWidget 添加到QGraphicsScene
关联到我的MultiWidget
.
这个想法是,MultiWidget
应该呈现所有这些添加的小部件的“笔记本式”视图,从上到下显示它们,一个在另一个下,并给(作为一个额外的噱头)一个小绿色旋钮,用它可以切换小部件隐藏和显示之间:
现在我尝试添加一个新的小部件GPURenderWidget
,从QOpenGLWidget
withaddWidget
方法派生MultiWidget
,它首先看起来没有错误。但是: 显示的内容GPURenderWidget
没有在 :paintGL
的窗格上正确显示MultiWidget
: 显示了初始图片,但是尽管在一系列paintGL
调用中生成了新帧,但GPURenderWidget
MultiWidget 中的视图没有得到更新(以下是呈现的静止视图):
我已经将我viewport
的设置MultiWidget
为OpenGL-form
via
我是否被迫放弃这种方法?什么是最好的选择?我应该创建一个GPURenderItem
派生的QGraphicsItem
并将其添加到QGraphicsView
viaaddItem()
吗?但我更愿意GPURenderWidget
保留一个QOpenGLWidget
,以便它可以在其他地方用作独立的小部件。还是我必须牺牲整个MultiWidget
方法addWidget
来 a QGraphicsScene
?
c++ - QT 非 GUI 线程上的 WGL 窗口
我开始尝试使用 QT 的 OpenGL 资源在非 GUI 线程上创建 OpenGL 渲染窗口,如该线程中所述:
https://forum.qt.io/topic/123151/qwindow-on-a-non-gui-thread
我尝试这样做的原因是因为我的 GUI 线程非常忙于处理大量事件和小部件,当我使用 QWindow 时这会导致卡顿和丢帧。
目前,我已经创建了一个用于创建QOpenGLContext的本机 WGL 上下文/窗口:这是该项目的 github 链接:https ://github.com/rtavakko/WinGL
所有资源,包括本机窗口,都可以毫无问题地创建,并且我能够在单独的线程上使 QT 上下文成为当前的,并且 OpenGL 渲染也不会产生错误,但 Hello Triangle 不会在我的窗口上渲染。似乎原生 WGL 上下文和 QT 上下文仍然是独立的实体。
如果我进行直接 WGL 调用以使上下文成为当前/交换缓冲区,我似乎能够在本机窗口上进行 OpenGL 调用,但似乎我仍然无法访问 QT 上下文呈现的资源(例如 FBO 输出纹理)。
有什么想法可能是错的吗?
干杯!