Что означает «точный средний поплавок»?

В learningwebgl tutorial1 я нашел интересную строку во фрагментном шейдере.

precision mediump float;

Я нашел статью об этом здесь, но я до сих пор не могу понять, что это значит?

И если я уберу эту строку, ничего не изменится. Все то же самое. Итак, что означает precision mediump float?


person Hard Rain    schedule 08.12.2012    source источник
comment
Взгляните на эту запись SO, особенно на спецификацию GLSL. Это отвечает на ваш вопрос?   -  person Matthias    schedule 08.12.2012
comment
возможный дубликат в OpenGL ES 2.0/ GLSL, где вам нужны спецификаторы точности?   -  person Peter O.    schedule 09.12.2012
comment
Вы не поняли из вашей статьи, что означает mediump, потому что она этого не объясняет.   -  person Ivan Kuckir    schedule 09.10.2015


Ответы (1)


Это определяет, насколько точность GPU использует при вычислении чисел с плавающей запятой. highp — это высокая точность и, конечно, более интенсивная, чем mediump (средняя точность) и lowp (низкая точность).

Некоторые системы вообще не поддерживают highp, что приведет к тому, что код вообще не будет работать в этих системах.

В системах, которые ДЕЙСТВИТЕЛЬНО поддерживают highp, вы увидите снижение производительности и должны использовать mediump и lowp везде, где это возможно. Хорошее эмпирическое правило, которое я видел:
- highp для позиций вершин,
- mediump для координат текстуры,
- lowp для цветов.

Надеюсь, это поможет!

person HowDoIDoComputer    schedule 08.12.2012
comment
Спасибо. И возможно ли это как-то, если поддерживается высокое/среднее/низкое p или нет? - person Hard Rain; 08.12.2012
comment
Разные системы будут поддерживать разные настройки. Единственное, что я когда-либо читал о том, что НЕ поддерживается, это высокий уровень. Я думаю, что средний и низкий уровень должны быть безопасными, но об этом следует помнить, если какой-то код не работает на устройстве, и вы не можете найти причину :) - person HowDoIDoComputer; 08.12.2012
comment
Спасибо за это эмпирическое правило, очень полезное, вы знаете, где я могу найти фактическую точность каждого с точки зрения мантиссы каждого типа? Я знаю, что на самом деле это не имеет значения, мне просто любопытно. - person Trevor Hart; 28.08.2016
comment
@TrevorHart — попробуйте это: litherum.blogspot.com/ 2013/04/ - person HowDoIDoComputer; 29.08.2016
comment
Это функция GLSL или GLSL ES? Это устарело? - person user5280911; 24.12.2017
comment
Это GLSLES. На практике именно medium/lowp может не поддерживаться, особенно на настольных графических процессорах. На мобильных устройствах обычно поддерживается пониженная точность. - person Andrea; 03.12.2019