Render large circular points in modern OpenGL

The “modern” way of drawing points works like this: Enable program point size mode: glEnable(GL_PROGRAM_POINT_SIZE); Render vertices with GL_POINTS primitive mode. In the vertex shader, set the built-in variable gl_PointSize to the desired size of the individual point: gl_Position = …; gl_PointSize = …; The value used for this point size could be constant if … Read more

What is state-of-the-art for text rendering in OpenGL as of version 4.1? [closed]

Rendering outlines, unless you render only a dozen characters total, remains a “no go” due to the number of vertices needed per character to approximate curvature. Though there have been approaches to evaluate bezier curves in the pixel shader instead, these suffer from not being easily antialiased, which is trivial using a distance-map-textured quad, and … Read more

What are the Attribute locations for fixed function pipeline in OpenGL 4.0++ core profile?

Outside of NVIDIA drivers, this does not work (reliably). Compliant drivers will only alias glVertexPointer (…) to attribute slot 0. NV in their infinite wisdom devised a standard non-standard scheme many years ago where they aliased all of the fixed-function pointers to certain attribute locations, but I do not know if new NV drivers support … Read more

glVertexAttribPointer and glVertexAttribFormat: What’s the difference?

glVertexAttribPointer has two flaws, one of them semi-subjective, the other objective. The first flaw is its dependency on GL_ARRAY_BUFFER. This means that the behavior of glVertexAttribPointer is contingent on whatever was bound to GL_ARRAY_BUFFER at the time it was called. But once it is called, what is bound to GL_ARRAY_BUFFER no longer matters; the buffer … Read more