OpenGL variable names

G’day all,

This is a bit of a quick and silly amateur question, but what sort of conventions (if any) do you follow when naming uniforms in OpenGL shaders, and their respective handles in your program?

For example, I have uniforms in my shader named “gScale” and “vineRotation”. Their handles in my program are called “gScaleHandle” and “vineRotationHandle” respectively. The whole “somethingHandle” seems a bit long and cumbersome. I’ve seen other people prefixing things with ‘m’ and ‘h’ etc.; is that the generally accepted way to do things?

Cheers,
nerb.

Don’t think it’s a silly question: good conventions can only be a good thing, both for yourself and others (if you’re sharing shader code with others).

For my personal projects I use the following prefixes:

gl_ These are pre-defined by GLSL, e.g. gl_Color
g_ Global data that is always present should the shader choose to use it, e.g. g_modelview, g_elapsed
m_ Material properties, these are shader parameters set by materials at each node in the scene or via animation, e.g. m_rotationAngle, m_Colour
in_ Also use in_ as a prefix for the various incoming vertex attributes.

I believe JME3 has a similar scheme.

  • stride

Thankyou Stride. I’ll give it a go instead of using my long-winded version.

Out of pure interest, where do these standards come from? Is it something you learn whilst on the job, or studying perhaps? This is one of the downsides of being an armchair programmer; I don’t get nor seek much exposure to these things.

I guess it’s generally organic: someone comes up with a good idea for a standard, others think it’s good and adopt it, eventually it becomes the ‘standard’.

Probably the best example I can think of professionally was Hungarian Notation which cleverly solved a problem and pretty much became the de-facto standard for parameter/variable names back in my C days.

I don’t think this matters too much so long as you stick to your own conventions.