`precision mediump float` 是什么意思?

76

learningwebgl教程1中,我发现了片段着色器中一个有趣的行。

precision mediump float;
我在这里找到了一篇相关文章(点击此处),但我仍然不理解它的含义。
如果我删除这行代码,什么也没有改变。一切都是一样的。 那么precision mediump float是什么意思?

请查看这篇Stack Overflow帖子,尤其是GLSL规范。它是否回答了你的问题? - Matthias
你从文章中并没有理解mediump的含义,因为它没有进行解释。 - Ivan Kuckir
1个回答

99

这决定了GPU在计算浮点数时使用的精度。highp具有高精度,当然比mediump(中等精度)和lowp(低精度)更为复杂。

一些系统根本不支持highp,这将导致代码在这些系统上根本无法运行。

在支持highp的系统上,你会看到性能下降,并应尽可能使用mediumplowp。我看到的一个好的经验法则是:

  • 对于顶点位置使用highp,
  • 对于纹理坐标使用mediump,
  • 对于颜色使用lowp

2
谢谢你。请问是否支持高/中/低p? - Hard Rain
4
不同的系统会支持不同的设置。我所读到的唯一不支持的是高设置。我认为中低设置应该是安全的,但如果有些代码在设备上无法运行并且找不到原因,这是需要记住的事情 :) - HowDoIDoComputer
3
谢谢你提供的经验法则,非常有帮助。请问您知道在每种类型的尾数方面,我能找到实际的精度数据吗?我知道这并不重要,只是出于好奇想了解一下。 - Trevor Hart
@TrevorHart - 试试这个:http://litherum.blogspot.com/2013/04/precision-qualifiers-in-opengl-es.html - HowDoIDoComputer
这是GLSL还是GLSL ES的特性?它已经被弃用了吗? - user5280911
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接