- 1
- 2
- 3
.fsh, glsl, diff:
-- float distance = sqrt(pow(x,2) + pow(y,2));
++ float distance = sqrt(x*x + y*y);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−15
.fsh, glsl, diff:
-- float distance = sqrt(pow(x,2) + pow(y,2));
++ float distance = sqrt(x*x + y*y);
Угадайте, сколько будет pow(-0.5,2) по версии glsl под windows?
https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/pow.xhtml
"The result is undefined if x < 0"
А всё потому, что по определению pow(x,y) = exp2 (y * log2 (x)).
Вспоминая старую шутку с геймдевовского конкурса, почему бы компилятору не оптимизировать шейдер, чтобы скучные кубы превращались в сисястую эльфийку.