• 締切済み

テクスチャーの歪み

開発環境 Visual Studio 2005, OS Windows XP , SDK 現在、画像処理ソフトの開発をしています。 画像をテクスチャに読み込んで四角ポリゴンに貼り付けて4隅を動かすことでhotoShopのような自由変形をさせようとしていますが三角ポリゴンの歪みが出てしまいます。 何か歪みが出ない方法がありましたら教えて頂けると助かります。 宜しくお願いします。

みんなの回答

  • titokani
  • ベストアンサー率19% (341/1726)
回答No.3

変形のアルゴリズムは質問者さんが独自に考えたのでしょうか? もしそうなら、なぜ変形するのかもおわかりかと思うのですが。 A--------B |       | |       | C--------D A-----------B |        / |       / C--------D 多角形をいきなり変形させるのは難しいので(凹ポリゴンになった場合の対処など)、通常は三角形に分割して変形します。このとき、ADで分割するか、BCで分割するかで結果が異なるのはおわかりかと思います。 ADを直線のままにしたいならば、ADで分割してやればいい話ですが、これで果たして自然な変形に見えるかどうかは別問題ですね。 自然な変形に見せたいのなら、二つの三角形に分割するのではなく、二本の対角線を使って四つに分割するなど、いろいろと工夫する必要があるかと思います。

sakichichi
質問者

お礼

回答 ありがとうございます。 目的としてはテクスチャーに風景等の画像を読み込ませたものを ポリゴンに貼りこんで、それを自由変形させるという事です。 例えばビルが写っている写真を4点のポリゴンに貼り付けて頂点を動かすと ビルが曲がってしまうといった様な症状をシンプルな方法で回避できないかと思ったのですが、やはり簡単な方法は無いようですね。 もう少し考えてみます。

回答No.2

>上のポリゴンを下のように変形すると対角線ADが直線ではなくて頂点Bの方に引っ張られたような状態で途中で折れ曲がってしまう 頂点を移動してポリゴンを変形した場合は、移動した頂点のUV値も「変形に合わせて変更」しないと、テクスチャの貼られ具合が変化します。 つまり「テクスチャが歪む」と言う事が起きます。

sakichichi
質問者

お礼

回答ありがとうございます。 つまりポリゴンを分割して、各頂点にあったUV値を設定してあげる 必要があるという事でしょうか?

回答No.1

>何か歪みが出ない方法がありましたら教えて頂けると助かります。 万能な方法はありません。 なお「2枚のポリゴンの合わせ目の対角線の部分に、歪みにより隙間が開いている」と言う場合は「2枚重ね」で隙間を目立たなくさせる事が出来ます。 A______B  |         | C ̄ ̄ ̄ ̄ ̄ ̄D 4点ABCDの四角形なら、ΔABC、ΔCBD、ΔABD,ΔADCの4つの三角形でポリゴンを作ります(ポリゴンの裏表に注意) こうすると、対角線ADで隙間が出来ても、ΔABC、ΔCBDのポリゴンが隙間を隠してくれます。同様に対角線BCも、ΔABD,ΔADCが隙間を隠してくれます。

sakichichi
質問者

お礼

回答ありがとうございます。 説明が足りなかったようですのでもう少し詳しく説明すると A--------B |       | |       | C--------D A-----------B |        / |       / C--------D 上のポリゴンを下のように変形すると対角線ADが直線ではなくて頂点Bの方に引っ張られたような状態で途中で折れ曲がってしまうのでこれを何とかしたいと思っています。 ポリゴンを分割すればある程度歪みを抑えられるのでしょうが、それでも 直線にはならないようなので何か方法が無いものかと質問した次第です。

関連するQ&A