4

現在、極から極への継ぎ目のない二十面体のテクスチャ マッピングの解決策はありません。このプリミティブのテクスチャ マッピングはよくある問題のようですが、まだ完全には解決されていません。私は多くの調査を行い、UV座標を生成するためにさまざまなアプローチを試しました。最も近い(そして最小の)アプローチは次のとおりです。

GLfloat u = 0.5f * ( 1.0f + atan2( z , x ) * ( 1 / M_PI ));  
GLfloat v = acos( y ) * ( 1 / M_PI );

二十面体または天球体は、jMonkeyEngine や Geist3D などのさまざまなオープンソース フレームワークの一部ですが、どの実装も正しく機能していないようです。展開された長方形のテクスチャをマッピングすることは不可能ではないはずですか、それとも間違っていますか? すべてのコード スニペットを歓迎します。

iPhone用のopenFrameworks 0.61で構築されたXcodeプロジェクトをここにアップロードしました。内部には 2 つの PNG ファイルもあり、それぞれ別の継ぎ目のバリエーションを示しています。

4

3 に答える 3

3

二十面体の表面は球のトポロジーを持っています。2D テクスチャのサーフェスには、平面のトポロジがあります。球と平面の間に微分同相は存在しません。つまり、2D テクスチャと正 20 面体サーフェスの間で引き伸ばされたり引き裂かれたりしないマッピングはありません。

ただし、キューブマップと 20 面体の間にはマッピングがあります。

于 2011-01-15T16:03:11.233 に答える
3

テクスチャ イメージを変更する必要があります。テクスチャ イメージは、極が線に引き伸ばされた球の歪みです。これを正二十面体に適切にマッピングすることはできません。そのためには、そのような歪みが生じる経度と緯度のシステムのような分割。代わりに、極がいくつかの異なる点に分割されたテクスチャ イメージが必要です。これは、球体を平面にマッピングすることによる歪みを最小限に抑えようとするいくつかの世界地図で確認できます。例http://www.planetaryvisions.com/Project.php?pid=2236

http://www.vterrain.org/Textures/spherical.htmlで、球体をテクスチャリングするさまざまな方法に関する良い情報を見つけることができます。

于 2011-01-15T12:54:44.107 に答える