法線ベクトル、接線ベクトル、従法線ベクトルとは何ですか?


47

次の情報を見つけたいです。

  • 彼らは何ですか?
  • ゲーム開発での使用例(使用領域)

次のベクタータイプについて:

  • Normal
  • Tangent
  • Binormal

単純なゲーム開発中心の説明で十分です。


1
質問が多すぎます。ベクトルがどのように機能するかを読んでおくのが最善です。最初から。三角法も途中で修正します。
シダー

3
これは多くの質問があるかもしれないと考えましたが、一方で、この情報を1つの質問の下にまとめておくといいでしょう。それが、私が簡単な説明を特に求めた理由でもあります。
ヤヌスヴァルス

回答:


43

一般的に言えば、法線ベクトルは、表面から直接「外」を指す方向を表します。つまり、(平面の場合)共面(平面の場合)または接線(で平坦でない表面の場合)与えられた点の表面。

接線ベクトルは、通常、サーフェスの平面内に存在する(平面の場合)、または曲面上の基準点に接する1つのベクトルと見なされます(つまり、基準点と同じ法線で平面が構築された場合) 、接線ベクトルはその平面と同一平面になります)。

従法線ベクトルの概念はもう少し複雑です。コンピュータグラフィックスでは、通常、ビタンジェントベクトル(ここを参照)を指します。これは、実質的にサーフェスの「他の」タンジェントベクトルであり、法線ベクトルと選択したタンジェントベクトルの両方に直交します。ノーマル、タンジェント、ビタンジェント

計算方法に関しては、これはサーフェスの複雑さと法線の精度によって異なります(スムーズシェーダーなど、場合によっては近似サーフェスの法線を計算する方が望ましい場合がありますが、表面の実際の情報が存在しない場合)、しかし、ここにいくつかの一般化された公式があります

それらがどこで発生するかという点では、答えはEVERYWHEREです。法線ベクトルは、カメラとオブジェクトを3D空間に配置し、物理計算で軌道、反射、角度を決定し、スキンとテクスチャを3Dモデルにマッピングし、AIプログラミングで照準軌道オフセットを決定し、シェーダーに方法を示すために使用されますライト、カメラ、その他のオブジェクトに関連するサーフェス上のライト、シェード、カラーポイントなど。これらはおそらく3D環境で使用する最も有用な情報の1つであり、2Dでも非常に便利です。


2
くそー私は写真を追加すべきだった:p
RobCurr

徹底的な説明をありがとう!回答としてマークされました。
ヤヌスヴァルス

2
正方形パッチの仮定が無効である理由と、誰もがタンジェントバイタンジェントについて言うすべてがかなり偽である理由に関するこの記事を読むと役立つかもしれません。使用すべき適切な数学の概要を説明しますが、残念なことに、私はそれで正しい答えを作成するのに十分な能力がありません。
ラースヴィクルンド

両方向ベクトルと従法線ベクトルは同等です。それらは同じものに起因する名前であり、どの名前を使用するかについての「精神的な観点」にのみ依存します。
ニコス

15

通常、法線ベクトルは照明の計算に使用されます。メッシュの頂点によって近似されるのは、表面に垂直であると想定されるベクトルです。法線は各頂点の位置で定義されますが、その頂点で光をどのように反射するか、またはシェーダーでの光の計算で何をしたいかによって異なる方法で計算できます。

接線および従法線ベクトルは、互いに垂直なベクトルであり、レンダリングしようとしているサーフェスに対するu、vテクスチャ座標の方向を本質的に記述する法線ベクトルです。通常、それらは法線マップと一緒に使用でき、モデルにサブサーフェスライティングのディテールを作成できます(でこぼこ)。

これらのベクトルを利用する他の方法が明らかにあり、それらの平均的な使用について説明しました。より技術的な情報については、コンピューターグラフィックスに関する本を取り上げるか、インターネット上のいくつかの記事を調べることをお勧めします。これについては多くの情報があります。


4
+1-ただし、次回; 写真を追加します。
ピーターギアケンズ

9

接線と従法線の違いはサーフェス上ではすぐには明確になりませんが、それはそれほど驚くべきことではありません-従法線はもともとサーフェスではなく曲線のために定義されたもので、コンセプトがより理にかなっています動きの方向に直交するという点で「通常」、つまり名前として)。より具体的には、p = V(t)=(V x(t)、V y(t)、V z(t))の形式の空間曲線が与えられ、次に接線-を指すベクトル運動の方向-T u = dp / dt =(dV x / dt、dV z / dt、dV z/ dt)。(ここにMathJaxがないので、ここで下付き文字を使用して「非正規化」を区別しています。)曲線に沿った(瞬間的な)速度は、s = | T u |、接線ベクトルの長さ、 「正規化された」接線ベクトルは、単純にT = T u / sです。

次いで、曲線の法線ベクトルは、正規化された接線ベクトルの誘導体である時間をかけて、N U = DT / DT。正規化された接線が、ここで使用されていることの理由は、法線ベクトルをゆがめるから曲線に沿って速度を維持することです-あなたは、この定義で、我々は常にTNを持っていることを示すことができるUが Nであることを0注= uは必ずしも単位ベクトルではありませんが、T uを超えるもの; 実際、その大きさk = | N u | は、指定されたポイントでの曲線の(瞬間的な)曲率であり、ポイントp + N uは(指定されたポイントでの)いわゆる接触円の中心です。正規化された法線は、N = N uになります/ k、バイタンジェントBは外積B = TxNです。TとNは両方とも単位ベクトルであり、互いに直交しているため、Bも単位ベクトルであり、(T、N、B)は直交フレームです。

この定義により、曲線の「従法線」は表面の法線と考えられるものに近く(曲線の「局所」平面の法線である)、曲線の法線は対象物に近いことに注意してください私たちは表面へのバイタンジェントと考えています。

(悲しいことに、このイメージはコンセプトの正義を実際には行いませんが、ウェブ上で見つけることができる最高のものであり、自分で簡単に構築することはできません...)

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.