TAG : wonderfl

(((o゚ω゚o)))

[ソース表示] ActionScript3を勉強して初めて作ったデモです。基本的にビットマップ処理だけで描画しています。C++プログラマの時代から、ビットマップ処理は興味があって色々と勉強してたので、ActionScript3にデフォルトで用意されている様々な処理関数は感動したのを今でも覚えています。

Depth buffer test on FlashPlayer10

[ソース表示] FlashPlayer10 の 3D機能で深度バッファを実装しました。FlashPlayer10では、深度バッファは実装されていないため、BitmapDataのthreshold()メソッドと描画方法を色々組み合わせて実装しています。 画面クリックで、実際にレンダリングしている深度バッファをグレースケールで表示します。実際にGPUで採用されている深度バッファは、焦点からのz方向距離の逆数を使うことで、近くは細かく遠くは粗く計算しますが、この実装ではz値をそのまま256段階のビットマップに落とし込むため、境界の判定が粗いです。

Real time ambient occlusion on FlashPlayer10

[ソース表示] ライティングもデプスバッファも無い FlashPlayer10 の似非3D機能を使ったリアルタイム大域照明(Ambient Occlusion)レンダリングです。球面の各頂点から見える景色を簡易レンダリングすることで遮蔽率を計算します。大雑把に言えば、物体を真っ黒/背景を真っ白に設定して、原始的なラジオシティ法のエネルギー伝播を1回だけ実行している、とも表現できるかもしれません。 関連エントリ; WonderflでReal Time? Ambient Occlusion

Ambient Occlusion Rendering

[ソース表示] 大域証明 ray-tracing のベンチマークテストであるAOBench(https://code.google.com/p/aobench/)を FlashPlayer10 に移植したものです。当時は ActionScript3に Vector がようやく搭載されたばかりで、まだ認知度が低かったため、その実験と検証を兼ねて投稿しました。 関連エントリ; wonderflで汚名返上

Arena Shooting in 100 Lines

[ソース表示] 100行の Arena shooting geme です。ActionScriptでは改行は空白として認識されるので、行数は意味がないのですが、一応 1行120文字制限 セミコロンは1行に一個 複数行にまたがるクロージャは閉じ中括弧に1行使う という制限をかけてコーディングしています。 関連エントリ;wonderflで100行で全方位シュー

ABC flyer

[ソースを表示] 3DモデルをBase64にエンコード/デコードしたBase64 3D modelと、3D地上スクロールを実装したABC groundを合わせて飛行機を飛ばしてみました。 空の壁紙の外が見えてしまっていますが、これはFlashPlayer10の似非3D機能のパースペクティブ計算の方法がプレイヤーのバージョンで異なっているためではないかと思われます。当時は問題なく表示されていました。互換性を重んじるFlashPlayerでは珍しい現象なのでこのままにしてます。 関連エントリ;WonderflでABC

wonderflで3D(FlashPlayer10)

[ソースを表示] FlashPlayer10 で搭載された”疑似”3D機能の最初の実験作です(Gouraud Shading版)。FlashPlayer10の疑似3D機能は、Graphicsに毛が生えた程度のものだったので、3Dのレンダリングに関する計算はほぼ全てコードとして書く必要がありました。今では当たり前の様々な処理をほとんど自前で準備したため、非常に勉強になりました。 関連エントリ;wonderflでガチ3D

shmups on LCD

[ソース表示] ポケコンの2階調液晶を再現するレンダラを使った全6面のミニシューティングゲームです。SampleDataEventを使ってポケコンのビープ音もシミュレーションしています。敵モーションパターン記述するスクリプトエンジンも込みで560行で書かれています。スクリプトエンジンにはCannonMLをベースにしたTinyCannonMLを使用しています。 関連エントリ;wonderflでポケコンでシューティング