torutkのブログ

ソフトウェア・エンジニアのブログ

JavaFX 3DのSphareに貼るテクスチャのマッピング

以前、JavaFX 3Dの機能を使って、3Dシェープの球体(Sphere)に、世界地図のテクスチャを貼って地球を表示させてみました。*1

この際に使用した世界地図のテクスチャ用画像は次です。

これを、JavaFX 3Dの球(Sphere)に貼って表示させたものが次です。

これを見ると、アフリカの形状の部分に違和感を感じました。やけに横長に見えます。

比較のために、ほぼ同じアングルで地球儀の写真を撮ってみました。

するとJavaFX 3Dの地球表示は

  • アフリカ大陸の横幅は地球儀と比べるとほぼ同じ
  • アフリカ大陸の縦の長さが詰まっている
  • 南アフリカから南極にかけての海が広い
  • マダガスカルの縦が短い
  • ヨーロッパの表示位置が下寄りで北極にかけての海が広い

という状況です。

検証

緯度経度線を10度刻みで引いた格子のテクスチャを作成しました。

このテクスチャをSphereに貼ってみたところ、次の表示となりました。

最初は、赤道直上から見たアングル

次は、北極寄りから斜めに見たアングル

  • 赤道付近の緯度経度格子(10度刻み)が正方形ではなく、横長の長方形となっている
  • 北極付近の緯度経度格子の緯度間隔(10度刻み)が長くなっている

というところで、本日はここまで。
続きは明日(id:torutk:20161101)