Значит ли переменная, что вы набиваете значения, определять, с какой точностью вы работаете, справа от знака равенства?
Например, существует ли какая-либо разница в смысле спецификатора точности здесь:
gl_FragColor = lowp vec4(1);
Вот еще один пример:
lowp float floaty = 1. * 2.;
floaty = lowp 1. * lowp 2.;
И если вы берете некоторые поплавки и создаете из них вектор или матрицу, будет ли этот вектор или матрица получать точность значений, которые вы им нанесли, или эти значения преобразуются в другой уровень точности?
Я думаю, что оптимизация этого лучше всего ответит на вопрос:
dot(gl_LightSource[0].position.xyz, gl_NormalMatrix * gl_Normal)
Я имею в виду, нужно ли это зайти так далеко, если вы хотите, чтобы это было как можно быстрее или что-то из этого бесполезно?
lowp dot(lowp gl_LightSource[0].position.xyz, lowp gl_NormalMatrix * lowp gl_Normal)
Я знаю, что вы можете определить точность по умолчанию для float и что это предположительно используется для векторов и матриц впоследствии. Предположим, что с целью обучения мы определили это ранее:
precision highp float;