对于OpenGL和GLSL,我是一个完全的新手。就是说,在使用ShaderToy时,我经常看到人们在使用类似的东西:
vec2 uv = fragCoord / iResolution;
vec2 centerPoint = vec2(0.5);
vec2 distanceVector = uv - centerPoint;
float dist = sqrt(dot(distanceVector, distanceVector));
通过OpenGL的
distance
函数:vec2 uv = fragCoord / iResolution;
vec2 centerPoint = vec2(0.5);
float dist = distance(uv, centerPoint);
我很好奇为什么会这样(我想这与速度或对
distance
的支持有关)。我大致理解,如果参数相同,则点积的平方根等于向量的长度:距离?
最佳答案
在做基本上相同的事情时,人们经常出于以下两个原因之一选择sqrt选项:
1.他们不知道/不记得距离功能
2.他们相信自己和自己的数学原理,以证明这不是导致错误的问题(避免OpenGL问题)
关于opengl - 人们为什么在OpenGL的距离函数上使用sqrt(dot(distanceVector,distanceVector))?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38112526/