A note on OpenGL ES 2.0 shaders and floating point

Howdy,

Came across something interesting today that might catch out other newbies like myself, and thought I’d post it here:

After playing with LWJGL, OpenGL and GLSL, I’ve got into the habit of slapping an ‘f’ on the end of every floating point number, including in my vert and frag shaders (i.e. 0.8f, 3f etc.). This doesn’t appear to be a problem with normal OpenGL.

However today I started toying with OpenGL ES 2.0 shaders on Android, and couldn’t get my shaders to compile. After pulling my hair out and trying everything, I eventually discovered that it was the f’s on the end of my floats. I also found that floats must be explicitly defined with a decimal point, or once again the shaders won’t compile (i.e. 1 must be written as 1.0).

So there ya have it. I’m sure it’s in a reference or a tutorial somewhere, but I’ve yet to pay attention and notice it.

Cheers,
nerb.