from geometry to pixels



glGetActiveFragmentOut can be a useful OpenGL call, similar to glGetActiveAttrib and glGetActiveUniform it can query the names of the fragment shader outputs from a shader program. It’s useful for rapid prototyping or shader IDE where the program has to check user-generated (or not well-tested) shaders whether they match the provided geometry data and attributes (glGetActiveAttrib), […]



Are Vertex Shaders obsolete?

Ok, obsolete is a bit harsh, but currently a OpenGL shader program needs at least a vertex and a fragment shader (or it is a separable shader program in OpenGL 4.1 but in that case the shader program pipeline object needs a vertex shader). With attribute-less rendering (aka ‘drawing without data’) a vertex shader needs […]


, , ,

Inspecting the shaders of Rage

Rage, the game by ID Software and shooter legend John Carmack, is fun to play. But it’s even more fun to play around with it. I already presented ways to inspect the mechanics of ID Tech 5’s Virtual Textures, or MegaTextures as they are also called. However, if you are really curious about how that […]


, ,

Attribute-less rendering

The first step of the rendering pipeline is to fetch application provided data from one or multiple places (think of array buffers) and pass them as attributes into the vertex shader stage. This fetch can be controlled by an index and N attributes will get pulled from M arrays. The details are not so important […]


, , ,

Next posts