法線マッピング中にMikktspaceはどのように接線空間を計算しますか?


8

3D業界では、あるアプリケーションから別のアプリケーションへの接線空間の正確で一貫した計算に依存する法線マッピングやその他の効果の接線空間を計算するために、Mikktspaceの標準がますます採用されています。Blender、xNormal、Unity、Substance Painter、Unreal Engineは、現在Mikttspaceを使用していると考えることができるほんの一部です。私は個人的に、この標準を採用するために自分のプロジェクトを再コーディングすることも試みています。

しかし、Mikktspaceは比較的新しいものであるため、その動作に関するリソースはほとんどありません。どんな小さなリソースでも、通常は詳細が少なく、非常に技術的であり、ユーザーフレンドリーではありません。または、コーダーが特定のレベルの知識を持っていると想定しています。

1つの言語だけに限定されない方法で数学とコードがどのように機能するかについての簡単な説明とともに、Mikktspaceの仕組みとその実装方法についての明確な説明を探しています。

例として、プログラマが頂点のインデックスを持つメッシュオブジェクトを持っているとします。頂点にはそれぞれ、位置、法線とUV座標、そのインデックスを参照する三角形のリストが含まれます。

例えば:

  • Vertex:{XYZ NX NY NZ ST}
  • VertexIndex: のリスト Vertex
  • Triangle:{V1 V2 V3} (法線方向の正しい巻き順)
  • TriangleList: のリスト Triangle

簡単に言えば、各頂点のMikktspaceに準拠した方法で、頂点ごとに正接ベクトル(TX TY TZ)と正接ベクトル(BX BY BZ)を計算するにはどうすればよいでしょうか。


難しいですか?答えを出せると感じたら、どなたでも参加できます。Mikktspaceの手法と接線空間計算の一般的な手法との具体的な違いを簡単に説明しても、
Grady

回答:


3

そのプロジェクトにはさらにコードがありますhttps :
//github.com/teared/mikktspace-for-houdini/tree/master/source

また、タンジェントスペースの法線マップに関する情報は、
https ://archive.blender.org/wiki/index.php/DevShading / Tangent_Space_Normal_Maps / http://image.diku.dk/projects/media/mortenで確認できます。 mikkelsen.08.pdf

タンゲット空間の法線マップ(Mikktspace)に関するその他の情報はあまり明確ではありません。

メソッドに関する簡単な説明は非常に長いため、接線空間法線マップに関する適切な説明を参照するために、上記の2つのリンクを含めました。

注:Blenderは、この方法を使用しない理由についてのアドバイスも提供します。

これがお役に立てば幸いです:)


1
リンクだけではなく、いくつかの情報(種類の紹介)を置くべきだと思います。ある日404になるとあまり役に立ちません
。– Aistis

非常に真実で、良いアイシスです。ただし、必要に応じてWebサイトをダウンロードすることもできます。
Tripl3Fac3

私はこの答えを正解として受け入れています。Tripl3Fac3は個人的に非常に役立ちました。また、Tripl3Fac3がリンクに提供した情報は、現在のところ、この主題に関するすべての最高のリソースの要約です。
Grady

1
PDFリンクは私にとってはうまく機能します@Fire
Tripl3Fac3

1
この回答はスタックオーバーフローですぐに削除されます。ここで削除されていないのは驚くべきことです。これは答えではありません。それはいくつかのリンクです。リンクはコメントに残すか、回答を増やすために使用できますが、質問自体に実際の説明がないと、回答ではないため、「回答ではない」というフラグを付けて削除する必要があります
gman
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.