0

通常のアルゴリズムを使用して標準のポリゴン メッシュにテクスチャ マッピングを実装すると、y 軸に沿った変形に関連する問題が発生する可能性があります。変形は、この方向の頂点ではなく、一定の高さの四角形の行のバンドに沿って続きます。 x 軸に沿ったものと比較して独立してストレッチします。

メッシュの頂点を定義するときに、各行が下部頂点と上部頂点の両方を定義し、その上の行の頂点の下部行を共有する 1 つの行の上部行の頂点になるため、私はこれに遭遇しています。

x 軸または z 軸のいずれかに沿ってメッシュを変形させるだけであれば問題ありませんが、これを考慮せずに y 軸に沿ってメッシュを変形させると、四角形の列が 1 つのバンドとして一緒に機能することがわかります。独立した点の行の代わりに一定の高さ。y 軸に沿ってメッシュの変形が見られますが、これらのバンドの幅が変化しないため、テクスチャの裂けも見られ、メッシュにギャップが生じます。

この方法で構築されたポリゴン メッシュに (x,y) ディスプレイスメント マップ フィルターを適用する最善の方法について提案がある他の誰かがこれに遭遇しましたか? それとも、メッシュを定義するアプローチを根本的に変更する必要がありますか?

メッシュ生成アルゴリズムの例は、テクスチャ マッピングに関する ZEUS OpenGL|ES チュートリアル で見ることができます。

ありがとう。

4

1 に答える 1

0

わかりました、最初に質問を理解しているかどうか見てみましょう。

あなたの理解が正しければ、テクスチャ マップされたパッチをレンダリングしようとしています。しかし、パッチを垂直方向に伸ばして背を高くしようとすると、メッシュのさまざまな水平バンドが引き裂かれ、パッチの水平バンドがいくつかできてしまいます。

そうですか?

その場合、問題はメッシュ生成アルゴリズムにあり、テクスチャ マッピング自体は変更しないでください。提供されたリンクで確認できることから、各水平バンド間の頂点は共有されておらず、重複しています。したがって、上部の頂点間の間隔をスケーリングする場合は、バンドの高さもスケーリングして、下部の頂点が次の行の上部の頂点に収まるようにする必要があります。

アルゴリズムの基本は機能します。行の間隔と行の高さの両方を調整するだけです。プリミティブ リストがどのように機能するかをもう少し理解したら、インデックス付きプリミティブについて学びたいと思うかもしれません。これらは、プリミティブごとに頂点を複製するのではなく、実際に頂点を共有できるようにします。

それが役に立てば幸い。

于 2009-02-04T18:32:46.293 に答える