地球儀

地球儀地球儀をつくってみた(といってもずいぶん前のを調整しただけだけど)。
地図画像を読み込み、色を取得し対応するポリゴンの色としている。また、bump mapも使っているので、凸凹も表現している。

地図の画像
地図の画像

bump map
bump map

元画像は100*50の画像なので、頂点の位置をxとyに置き、bump mapの色の濃さでzとした。 bump mapを強調するために山の高さを大げさにした。

アフィン変換、透視変換をして、4つの頂点ごとに、linetoで四角ポリゴンを描き、color mapから取得した色で塗りつぶし。

計算頂点数5151(=101*51計算を単純化するために一周した同じ位置を二回計算している)。手前の半球(見えている部分)のみを描画すればいいので、(だいたい)球の中心から向こう側は描画していない。このため 実際の同時描画数は5割強程度。 2600強くらいの四角ポリゴンを描画している。

AS3ではあるが、FlashPlayer10の3D用の機能(Matrix3D,Vector3Dなど)は使っていない。

地球儀 – wonderfl build flash online

Get Adobe Flash player

[/kml_flashembed]

地球をクリックするたびに、101*51=5151頂点版、201*101=20301頂点版、501*251=125751頂点版に切り替わる。さすがに125751頂点版は重い。

201*101=20301頂点版、501*251=125751頂点版の画像は以下
earthmap500

▼color mapとbump mapの元画像
http://planetpixelemporium.com/earth.html

▼ActionScript AS3(FP9)

1 Comment

Comments are closed.