2016-06-30 13 views
5

私はOpenGLとGLSLに関しては完全な初心者です。 OpenGLのdistance機能上OpenGLの距離関数に対してsqrt(dot(distanceVector、distanceVector))を使用するのはなぜですか?

vec2 uv = fragCoord/iResolution; 
vec2 centerPoint = vec2(0.5); 

vec2 distanceVector = uv - centerPoint; 
float dist = sqrt(dot(distanceVector, distanceVector)); 

:ShaderToyを使用しているときとは言う、私はしばしばのようなものを使っている人を見

vec2 uv = fragCoord/iResolution; 
vec2 centerPoint = vec2(0.5); 

float dist = distance(uv, centerPoint); 

これは(私の推測では、それが何かをしているということですなぜ私はちょうど好奇心が強いですスピードやサポートはdistance)。

引数が同じ場合、ドットプロダクトの平方根はベクトルの長さに等しくなります。

答えて

5

本質的に同じことをやって、人々は多くの場合、2つのいずれかの理由SQRTオプションを選択します。 1.彼らはそれを証明するために自分自身と自分の数学を信頼している2 距離関数を覚えている/約彼らは知りませんバグ(OpenGLの問題を回避する)を引き起こす問題ではありません

+0

私のために働く。ありがとう。 – bradleygriffith

+0

より速いですか?または2つのファンクションサイクルを比較できますか? –

関連する問題