2017-01-29 8 views
0

コンピュータグラフィックスでは、法線ベクトルが、あるジオメトリのサーフェスがそのサーフェスに垂直であるために「向き合っている」方向を決定するために使用されます。ノーマル頂点は、通常のマトリックスによる変換後にどの座標系で終わるのですか?

モデルビューマトリックスで頂点の位置を変換すると、ビューア/カメラに関連する座標系になっているため、頂点は「ビュースペース」内にあると言います。

ただし、頂点の法線がの場合、ノーマルマトリックス1が代わりに使用されます。

I understand why this is doneの間に、変換されたノーマル頂点が「ビュースペース」にあるとも言われているかどうかはわかりません。直感的には、これはそうかもしれないようです。

通常の行列で変換された頂点法線が「ビュー空間」にあると言うのは実際に正しいのですか?そうでない場合、通常の頂点は同じ座標空間に変換されるのでしょうか、それとも他のより適切な用語がありますか?


¹モデルビュー行列の逆行列の転置。

+0

はい、あなたはそれを言うことができます。しかし、私はただの答え以上の答えを書く方法を知らないだろう。 – BDL

+0

違いは、法線ベクトルは原点が '(0,0,0)'に設定されているため、ベクトル変換に理想的な位置ではない方向のみを変換することです(変換されたベクトルは同じサイズですが方向が異なります)。 modelview_matrixそれは私たちが照明のために必要なものではないベクトルの代わりに位置として扱われます – Spektre

答えて

1

はい。私に説明させてください。 (エッセイを書いて申し訳ありません)

通常、頂点と法線の両方は浮動小数点3Dベクトルとして表されますが、その性質上、それらは異なるものになります。

座標空間は、起点ジオメトリをどの相対座標で測定したかを比較したものに過ぎません。

たとえば、1x1x1のサイズの2つのキューブを定義します。 8つの頂点すべてが定義されている起点は、その中心にあります。したがって、頂点座標は(+ -0.5、+ -0.5、+ -0.5)のすべての可能な組み合わせです。

これらのキューブは同じような座標を持つように見えるかもしれませんが、これまではそれらを単独でオブジェクトとしてみなしてきました。それらをシーンに配置するには、そのシーン内の位置、向き、サイズを定義する変換を定義する必要があります。私は両方のキューブに恒等変換を適用した場合

、私は今両方キューブのすべて頂点の座標が定義されていることにより、起源は今と同じであるので、彼らは、同じ座標空間にあると言うことができます。

いずれかまたは両方の変換をいずれかの変換に変更するかどうかは関係ありません。各立方体の座標に変換が適用された後、各立方体のすべての頂点の座標が同じ原点を基準にして測定され、同じ座標空間にあると言うことができます。


どのようにこの写真に法線が当てはまりますか?

ここでは、法線ベクトルと法線ベクトルとを区別します。サーフェス法線は、モデルのサーフェス上の特定の点に直交する正規化されたベクトルを表す数学的概念です。法線ベクトルは、既知の点でこのサーフェス法線の特定の値です。法線ベクトルは、頂点の座標と一緒にメモリに保存するものです。

一部の変換は、モデルのサーフェス法線を変更することがあります。他はしません。私が前に定義した立方体のいずれかを平行移動すると、立方体の各面の方向も変わらない。したがって、サーフェスの法線は、サーフェス上で選択したポイントとまったく同じです。キューブを拡大/縮小する場合も同様です。

ただし、キューブを回転すると、キューブの一部またはすべてのサーフェスの向きが変わります。これは、表面法線が変化することを意味します。したがって、メモリ内の頂点仕様の一部として格納された法線ベクトルは、古いものであり、サーフェス法線と一貫性を持たせるためにも回転させる必要があります。

したがって、法線ベクトルは表面法線に依存していると言えます。法線ベクトルは、頂点(またはモデル表面の任意の点)で行われる変換に依存します。したがって、ある座標空間から別の座標空間に変換を適用して頂点に変換を適用すると、法線ベクトルはスーツに従います。

表面ノーマルが技術的にモデルに適用された変換(翻訳を参照)の影響を常に受け​​るわけではない場合でも、ある座標空間から別の座標空間への変換は、以前に示したようにアイデンティティ変換のみを含むことができます。

あなたの質問に答える:はい、潜在的に異なる座標のセットに一連の潜在的に異なる変換を適用すると、それらを同じ座標空間に変換する可能性がありますが、それらは同じ座標にあるとはみなされません空間をモデルの表面上の頂点/点として定義する。

+0

あなたが言及した事のほとんどは、私はすでに理解しています。私の質問は、法線ベクトル(法線ベクトルで表される)を法線ベクトルで変換した後も、サーフェス法線がビュー空間でも*同じ*と*モデル - ビューマトリックスによって変換された頂点位置。あなたの最後の文章から、あなたは答えが「はい」だと思います、正しいですか? – ray

+0

はい。確かに、私は上記の理由からそうします。 – Bartvbl

+0

本当に必要なものより少し長いように見えましたが、フェアな音です:) – ray

関連する問題