37

私は現在、ノーマライズという GLSL の機能を利用した OpenGL でのライティングを研究しています。OpenGLのドキュメントによると、「2つのベクトルの正規化された積を計算する」と書かれています。ただし、「正規化」が何を意味するのかはまだ説明されていません。Google で正規化された製品とは何かを調べてみましたが、それについて何も見つけられないようです。正規化の意味を説明し、正規化された値の例をいくつか提供できますか?

4

3 に答える 3

49

混乱は、「ベクトル」ではなく「値」を正規化するという考えから来ていると思います。単一の数値を値と考えるだけでは、正規化は意味がありません。正規化は、ベクトルに適用する場合にのみ役立ちます。

ベクトルは一連の数値です。3D グラフィックスでは通常、 として表される座標v = <x,y,z>です。

すべてのベクトルには大きさまたは長さがあり、ピタゴラの定理を使用して見つけることができます。これは基本的に、原点からベクトルによって表される点まで|v| = sqrt(x^2 + y^2 + z^2)の線の長さです。<0,0,0>

ベクトルの長さが 1 の場合、そのベクトルは正常です。

ベクトルを正規化するとは、ベクトルが同じ方向 (原点からの直線を考えてください) を指すように変更することを意味しますが、その長さは 1 です。

法線ベクトルを使用する主な理由は、方向を表すためです。たとえば、無限の距離にある光源をモデリングしている場合、正確な座標を与えることはできません。ただし、法線ベクトルを使用して、特定の点からの位置を示すことができます。

于 2012-07-25T17:22:51.117 に答える
16

これは数学用語であり、このリンクはその意味を非常に簡単な用語で説明しています。

2Dおよび3Dコンピュータグラフィックスでの操作は、多くの場合、正規化されたベクトルのコピーを使用して実行されます。単位ベクトルに変換...ベクトルの正規化には2つのステップが含まれます。

  1. その長さを計算し、次に
  2. xyその(またはxyz)コンポーネントのそれぞれをその長さで除算します。
于 2012-07-25T07:19:42.780 に答える