`precision mediump float`是啥意思?

Posted

技术标签:

【中文标题】`precision mediump float`是啥意思?【英文标题】:What does `precision mediump float` mean?`precision mediump float`是什么意思? 【发布时间】:2012-11-26 15:58:34 【问题描述】:

在learningwebgl tutorial1 中,我在片段着色器中发现了一条有趣的行。

precision mediump float;

我找到了一篇关于它的文章here,但我还是不明白这是什么意思?

如果我删除这条线,什么都不会改变。一切都是一样的。 那么precision mediump float是什么意思呢?

【问题讨论】:

看看this SO post,尤其是GLSL规范。它回答了你的问题吗? In OpenGL ES 2.0 / GLSL, where do you need precision specifiers?的可能重复 你没有从你的文章中理解mediump是什么意思,因为它没有解释它。 【参考方案1】:

这决定了 GPU 在计算浮点数时使用的精度。 highp 是高精度的,当然比mediump(中精度)和lowp(低精度)更密集。

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

在支持highp 的系统上,您会看到性能下降,应尽可能使用mediumplowp。我看到的一个很好的经验法则是: - highp 用于顶点位置, - mediump 用于纹理坐标, - lowp 用于颜色。

希望有帮助!

【讨论】:

谢谢。如果支持高/中/低 p,是否有可能? 不同的系统会支持不同的设置。我读过的关于不被支持的唯一一件事就是高。我认为中等和低级应该是安全的,但是如果某些代码没有在设备上运行并且您找不到原因,总有一天要记住这一点:) 感谢您的经验法则,真的很有帮助,您知道我在哪里可以找到每种类型的尾数的实际精度吗?我知道这并不重要,我只是对此感到好奇。 @TrevorHart - 试试这个:litherum.blogspot.com/2013/04/… 这是 GLSL 还是 GLSL ES 功能?是否已弃用?

以上是关于`precision mediump float`是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

在cin / cout和scanf / printf期间在C ++中保存float和double precision

PHP7.4 json_encode 造成float数据精度异常情况

openGL之API学习(一七二)error C0000: syntax error, unexpected identifier, expecting “::“ at token “mediump“

2019-11-13 PHP7.x json_encode() Float Issue

OpenGL ES 2.0 符点精度

为什么sklearn中的sklearn.metrics.RocCurveDisplay可视化的图像中的AUC值的有效小数位数为两位?而不能自定义调节(floating point precision)