TAG : shading

4k fly-through

[ソース表示] 4084文字で自動生成した地形の上を飛ぶ Fly through を実装しました。 [left/right/a/s]:rotation [up]:accel [down/Shift/Space]:flying 関連エントリ;ActionScript で 地形生成 を 4k Byte で

Metallic Soft Cube

[ソース表示] 疑似環境マップによる反射表現とジオメトリブレンディングを、FlashPlayer11から搭載されたGPUレンダリング機能 Stage3D で実装しました。とくに新しいことはしていません。基本的なStage3Dの使用方法です。 関連エントリ;ActionScriptでジオメトリブレンディング+AGALで金属光沢シェーダ

Self Shadow on FlashPlayer10

[ソース表示] ライティングはおろかデプスバッファすら実装されていない FlashPlayer10 の似非3D機能で,セルフシャドウのレンダリングをやってみました。GPUを叩けるようになったFlashPlayer10 の Stage3D では、もっと複雑な処理も簡単に高速に実装できるようになっていますが、技術的にやっていることは一緒です。 技術解説エントリ;ActionScript でセルフシャドウレンダリング

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で汚名返上

wonderflで3D(FlashPlayer10)

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