我正在将QOpenGLFunctions与现代OpenGL一起使用。我想在窗口上绘制一些GL_POINTS,但是点的大小似乎很小。通常,您可以使用

glPointSize(4);

但是,该代码段在QOpenGLFunctions包装器中不存在,因此我不确定如何更改它们。

绘画GL_TRIANGLES对我来说效果很好。

我想画点以显示真实对象的点云。

最佳答案

如果使用 QOpenGLFunctions ,则实际上没有glPointSize()可用。为什么?



khronos.org上进行交叉检查:



因此,OpenGL支持它,但OpenGL ES不支持。

有两种可能的选择:

选项1:gl_PointSize

在OpenGL ES中,您可以改用GLSL着色器变量 gl_PointSize

(我在搜索适当的文档链接时“偶然地”发现了这一点–以前从未知道过,也从未使用过。)

derhass提供了额外的提示,即如果由 glEnable(GL_PROGRAM_POINT_SIZE) 启用,它也可以与OpenGL(非ES)一起使用。



选项2:使用替代的QOpenGLFunctions_???

除了QOpenGLFunctions之外,您可以显式使用非便携式替代方法(假设您不需要支持电话,嵌入式设备或类似的东西)。

Qt文档中的最佳概述。我可以找到: QAbstractOpenGLFunctions

10-08 01:16