我正在将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
。