Search code examples
javascriptopengl-eswebglterminologyfragment-shader

What does `precision mediump float` mean?


In the learningwebgl tutorial1 I've found an interesting line in the fragment shader.

precision mediump float;

I've found an article about it here, but I still can't understand what does it mean?

And if I remove this line, nothing changes. Everything is the same. So what does precision mediump float mean?


Solution

  • This determines how much precision the GPU uses when calculating floats. highp is high precision, and of course more intensive than mediump (medium precision) and lowp (low precision).

    Some systems do not support highp at all, which will cause code not to work at all on those systems.

    On systems that DO support highp, you will see a performance hit, and should use mediump and lowp wherever possible. A good rule of thumb that I saw was:

    • highp for vertex positions,
    • mediump for texture coordinates,
    • lowp for colors.