opengl - 人们为什么在OpenGL的距离函数上使用sqrt(dot(distanceVector,distanceVector))?

标签 opengl glsl webgl shader

对于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/

相关文章:

opengl - 使用 OpenGL 着色语言进行选择

javascript - 为什么绑定(bind)缓冲区的顺序在简单的 WebGL 程序中似乎很重要?

javascript - Three.js 对于给定数量的几何体/ Material /网格进行了多少次 webgl.draw 调用

javascript - WebGL 基准 - 我应该创建什么样的测试?

c++ - headless QT4 OpenGL 应用程序

c++ - 偏航、俯仰和滚动到 glm::rotate

c++ - 使用 GLSL 进行光线追踪

c++ - 平铺贴图 OpenGL C++

opengl - 上传 mat4 属性 (VBO) 与 mat4 制服 (UBO) 的性能

opengl-es - GLSL 片段着色器中的动态工作量