Каковы различия в типе float в OpenGL? - PullRequest
0 голосов
/ 05 марта 2012

Я портирую шейдер из OpenGL в WebGL, и я немного растерялся, когда вижу что-то вроде
float refCorrection = clamp(NdotL + fVelvet * 2 + .5f, 0.5f, 1.f);
Точно, есть ли разница между .5f, 0.5f и 0.5?

1 Ответ

2 голосов
/ 05 марта 2012

Если это код вызова C ++, 0.5 (без суффикса) означает double, а 0.5f и .5f равны float, оба обозначают одно и то же число, первые нули ничего не значат.

В GLSL все они являются числами с плавающей точкой, и ведущий ноль также не имеет значения. Если вам нужен двойной, вам нужен суффикс lf Однако обратите внимание, что удвоения были добавлены только после OpenGL и GLSL версии 4. Суффикс f присутствовал не всегда и в любом случае не нужен, так как float является значением по умолчанию.

...