• ベストアンサー

DirectXでの板ポリゴンのUV

DiretXでテクスチャの貼っている板ポリゴン(正方形)の頂点を移動した場合、 A ____ B  |     / |  |   /   |  |/___ | C        D Dの頂点を移動すればA、B、Cのテクスチャは変わらずに、B、C、Dのテクスチャだけが引き延ばされるので、奇妙な事になってしまいます。 Dの頂点だけを移動した際にテクスチャ全体が程よく引き延ばされる方法はないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

ポリゴンを2つ並べた「仮想四角ポリゴン」の頂点を簡単に移動する場合は「ポリゴンの頂点の入れ替え」が必要です。 Dの頂点を移動する場合は「仮想四角ポリゴン」を「ABC+BDC」から「ADC+ABD」に頂点入れ替えした上で、頂点Dを移動しましょう。 なお、この方法は「手抜き」なので1度しか使えません。頂点Dを移動後に頂点Bを移動させると破綻します。 >Dの頂点を移動すればA、B、Cのテクスチャは変わらずに、B、C、Dのテクスチャだけが引き延ばされるので、奇妙な事になってしまいます。 上記のような「テクスチャが歪む」と言う仕様になっているからこそ「リアルなポリゴンの変形」が出来るのです。 もし「四角形を綺麗に変形させたい」なら「数百のポリゴンをメッシュ状に細かく敷き詰めて、数百のポリゴンを同期させて変形させる必要」があります。 つまり「ポリゴン2つで済まそうなどという手抜きはいかんよ。ちゃんと変形させたいなら、数百のポリゴンからなるメッシュを変形させなさい」って事です。

noname#142253
質問者

お礼

この方法を実現させるにはポリゴン何百枚も貼んなきゃいけないんですか! ケチな自分には手の出しにくい手法です^^;

関連するQ&A