正方形のテクスチャを三角形にマッピングする方法は?


13

ポイントPのテクスチャ座標を見つけたいです。三角形の頂点と対応するuv座標があります。

テクスチャの小さな正方形の数字は色の値を表します。

PのUV座標を計算する手順は何ですか?

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


各コーナーをテクスチャ座標にマッピングするアフィン変換があります。これを使用してPをそのUVにマッピングできます。
— ラチェットフリーク

@ratchetfreakは私にリンクプラザを提供できますか?
— ジョンジョン

この論文では、交点計算と重心コード計算を一度に行う方法についての良い記事があります。これは本質的に三角形の変形に相当します。
— -joojaa

回答:


14

これは、Barycentric Interpolationを介して実現されます。

まず、の重心座標を見つけます。重心座標は、各頂点がポイントに寄与する重みを表し、三角形の面全体の頂点で既知の値を補間するために使用できます。P

3つの内側の三角形、P B CおよびP C Aを考えます。ABPPBCPCA

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

点P上の頂点の重心座標または重みは、三角形A B C全体の面積に対する内部三角形P B Cの面積の比率に比例すると言うことができます。APPBCABC

これは、がAに近づくにつれて三角形P B Cが大きくなり、他の2つが小さくなることを考えると、直感的に明らかです。PAPBC

1

重心座標の計算方法は次のとおりです。

BaryA=(By−Cy)(Px−Cx)+(Cx−Bx)(Py−Cy)(By−Cy)(Ax−Cx)+(Cx−Bx)(Ay−Cy)BaryB=(Cy−Ay)(Px−Cx)+(Ax−Cx)(Py−Cy)(By−Cy)(Ax−Cx)+(Cx−Bx)(Ay−Cy)BaryC=1−BaryA−BaryB

派生と推論は、ウィキペディアの記事で説明されています。

P

Puv=BaryA⋅Auv+BaryB⋅Buv+BaryC⋅Cuv

推論もこのプレゼンテーションで非常にうまく説明されています。

効率的な計算方法については、この質問も参照してください。


BaryB(Ay−Cy)

@joojaaそうは思いません。ウィキペディアの記事でも同じですが、私が行ったテスト計算からは正しいようです。
— ロテム

−(Ay−Cy)ACy=(Ay−Cy)

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