Javaゲーム制作記

いろいろ作ってます  

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ] スポンサー広告 | Comment(-)

Stage3Dで地球

最近FlashのStage3DというAPIがGPUでの3D描画に対応したらしいので、
勉強がてらに地球を表示してみました。

※FlashPlayer 11が必要です

The Earth - wonderfl build flash online



Stage3DだとAGALという言語で直接シェーダープログラムを書くことができるんですね。
そこで今までやっていなかったバンプマッピングに挑戦してみました。

バンプマッピングというのは平面のポリゴンに擬似的に凹凸を貼り付けるものです。

凹凸の表現に使われるテクスチャには表面の高さを白黒で表したハイトマップ(左)や、
直接法線ベクトルを書き込んだノーマルマップ(右)が使われますが、
最終的にはどちらも内部で法線ベクトルに変換されます。



もちろん実際にシェーダーで使うためには、
法線ベクトルの向きをポリゴンに合わせて変換しなければなりません。

変換後の法線ベクトルR'は、変換前の法線ベクトルをR、
テクスチャが貼ってあるポリゴンのU座標(Tangent)とV座標(Binormal)の向きUV、
およびポリゴンの法線ベクトルNを使用して以下のように計算できます。

R'.x = U.x * R.x + V.x * R.y + N.x * R.z
R'.y = U.y * R.x + V.y * R.y + N.y * R.z
R'.z = U.z * R.x + V.z * R.y + N.z * R.z

U軸(Tangent)とV軸(Binormal)の求め方については複雑なので、ここでは割愛します。
自分はこちらこちらを参考にさせていただきました。


本当はこの計算を全て頂点シェーダ内でしてしまうと速いのですが、
今回は手を抜いてフラグメントシェーダ内で行っています。
この辺を最適化すればもう少し速く動いたかもしれないです。



おまけ:絶賛作り直し中
[ 2011/11/27 20:11 ] 3D | Comment(4)
こんにちは、最近つぶつぶを知ってはまった者です。
色々と試している時にかなりスムーズに動く水車が出来たので、ちょっと報告。
中央の軸となる壁を、1ドットだけにし、隙間無く木材で埋めてしまいます。
余計な摩擦が無いので、右クリで回せば高速回転も可能です。

簡単な永久機関 ttp://ll.la/Td:D
水の量、水車と壁との隙間が適切だとずっと回ります。
[ 2011/12/14 01:07 ] [ 編集 ]
モコモコハンタープラス
こんにちは。初投稿です。
最近モコモコハンタープラスをやっているところ、デカコインが5個入手しました。
ですが、現在Tower-7から進め無いのでモコモコハンタープラスの更新を出来たらお願いします。

いま持ってる武器は現在入手可能のBedm gun~Fire burnerです。
あとくぼみが7個あるのでその中に入る武器を入手出来るよう、更新をできればお願いします。
[ 2011/12/14 16:20 ] [ 編集 ]
>>つぶつぶ初心者さん
遊んでくれてありがとうございます。
改良点はいっぱいあると思うので
つぶつぶもそろそろバージョンアップできたらいいなと。

>>モコモコハンタープラスLV36さん
遊んでくれてありがとうございます。
今そっちの開発は止まっている状況です…
新作のほうに力を入れているので、余裕ができたら更新しようかと。
[ 2011/12/16 13:19 ] [ 編集 ]
更新マダー?
[ 2012/01/02 20:41 ] [ 編集 ]
コメントの投稿




※URL記述の際はttp://としてください


プロフィール

saharan

Author:saharan

Twitter
検索フォーム


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。