垂直方向の変形を受けるポリゴンメッシュ(のOpenGL ES 1.1)で一定の水平バンドの高さ
-
21-08-2019 - |
質問
は、y軸に沿った変形に関連する問題に実行することができますx軸に沿ったものと比較して、独立して伸張することができる。
メッシュの頂点を定義する場合、各行がその上に行の頂点の下の行を共有する1行分の頂点の一番上の行に得られ、底部及び頂部の頂点の両方を定義するので、私はこのように実行しているます。
あなただけのxまたはz軸のいずれかに沿ってメッシュを変形している場合、これはOKですが、あなたはこれを考慮せずに、y軸に沿ってメッシュを変形させる場合は、クワッドの行として一緒に行動することを確認できます一定の高さの代わりに、独立した点の行のバンド。あなたは、y軸に沿ってメッシュの変形が表示されますが、これらのバンドはメッシュのギャップにつながる、幅が変わらないとして、あなたはまた、テクスチャ裂けが表示されます。
他の誰がこのように構築ポリゴンメッシュに(x、y)の変位マップフィルタを適用する方法最善の提案を持っているでしょう誰がこのに遭遇していますか?またはメッシュを定義するためのアプローチは、いくつかの基本的な方法で変更することがありますか?
ES |メッシュ生成アルゴリズムの例は、 ZEUSのOpenGL上で見ることができますテクスチャマッピングのチュートリアルはします。
感謝します。
解決
[OK]を、私は最初の質問を理解するかどうかを確認することができます。
私が正しくあなたを理解していれば、、あなたはテクスチャマッピングされたパッチをレンダリングしようとしています。しかし、その後、あなたは、それは背が高くなるように、垂直方向にパッチをストレッチしようとしているあなたのメッシュの涙は異なる水平バンド、あなたはパッチのいくつかの水平方向のバンドで終了しているときます。
右のことですか?
そう、問題はメッシュ生成アルゴリズムである場合は、、テクスチャマッピング自体は変わらないままでなければなりません。私は提供されたリンク上で見ることができるもの、各水平バンド間の頂点が共有されていないから、彼らが複製されます。あなたは、トップの頂点間の間隔をスケールのであれば、あなたも下の頂点が次の行のトップ頂点にフィットするように、バンドの高さをスケーリングする必要があります。
アルゴリズムの仕事の基本は、あなただけの行間隔と行の高さの両方を調整する必要があります。あなたはもう少しプリミティブリストの仕組みを理解するときには、インデックス付きプリミティブについて学びたいと思うかもしれません。これらは、実際にあなたがすべてのプリミティブのためにそれらを複製するのではなく、頂点を共有できるようになります。
それがお役に立てば幸いです。