4

これは、別の質問(そこにある画像)で説明されている問題に関連しています。

Openglシェーダーの問題-奇妙な光反射アーティファクト

データ構造を作成し、接線と接線を計算する.objインポーターがあります。これが私のオブジェクトの最初の三角形のデータです:

データ構造

接空間の私の理解は、法線が頂点から外側を指し、法線が法線ベクトルに垂直(直交?)であり、テクスチャの正のSの方向を指し、接線が両方に垂直であるということです。あなたがそれを何と呼ぶか​​はわかりませんが、これらの3つのベクトルは、回転または変換されたx、y、z軸のように見えるものを形成していると思いました。それらは3つのランダムに方向付けられたベクトルではないでしょう?

また、私の理解:法線マップの法線は新しい法線ベクトルを提供します。ただし、接空間テクスチャマップでは、rgbでエンコードされた法線と頂点ごとの法線の間に組み込みの方向はありません。したがって、TBNマトリックスを使用してギャップを埋め、同じスペースに配置します(または適切なスペースに照明を配置します)。

しかし、オブジェクトデータを見ました...私の構造には270の頂点があり、それらすべてに接線Yの0があります。これは接線データに対して正しいですか?これらの接線は頂点法線空間のようなものですか?それとも完全に間違っているように見えますか?それとも、これがどのように機能し、私のデータが正しいかについて混乱していますか?

他の質問で私の問題の解決に近づくには、データが正しいことと、接空間照明の計算がどのように機能するかについての理解を確認する必要があります。

4

1 に答える 1

9

接線および接線ベクトルは、テクスチャ座標のSおよびTコンポーネントの方向を指します(OpenGL用語に慣れていない人の場合はUおよびV)。したがって、接線ベクトルはSに沿ってポイントし、接線ベクトルはTに沿ってポイントします。

そうです、これらは法線または互いに直交している必要はありません。それらはテクスチャマッピングの方向に従います。実際、それが彼らの目的です。法線をモデル空間からテクスチャの空間に変換できるようにすることです。モデル空間からテクスチャの空間へのマッピングを定義します。

接線と接線は、その頂点のS成分とT成分が直交している場合にのみ、互いに直交します。つまり、テクスチャマッピングにシアリングがない場合です。また、ほとんどのテクスチャマッピングアルゴリズムはシアリングを最小限に抑えようとしますが、それを排除することはできません。したがって、正確な行列が必要な場合は、非直交の接線と接線が必要です。

于 2013-03-15T13:59:24.997 に答える