Flexで3D

最近では話題にもならないネタですが、Flexを使ってポリゴン3Dを描画してみました。

頂点数 : 739
面数 : 1360
解像度 : 640×480
メタセコイアからobj形式で吐き出して、Flashで読んで描いています(マテリアルの部分は面倒だったのでハードコーディング)。
Core 2 Duo 2.66GHzで20〜22fps程度出ています。すごい時代になったものだ。


一応、テクスチャマッピング、フラットシェーディングくらいはやってみました(排他ですが)。
ベクトルクラスと、行列クラスを自前で実装して、自前で座標変換をやって、三角形をべたべた書いています。
ソフトウェアレンダラ的なものを自分で書いてみるというのも良いですね。

Flash Player 10にはdrawTrianglesという、ポリゴン描画をやるために用意されたような関数があったので使ってみたのですが、
moveTo&lineToで三角形を書いていくのとさほど差がありませんでした。
1fpsくらいdrawTrianglesを使った方が早い感じ。まぁ、5〜10%速いのか。

速度こそ出ませんが、三角形にアンチエイリアスが効いているので、小さい解像度でも綺麗ですね。
もうちょっと遊んでみようと思います。


このレベルの表現になると、モデルうんぬんよりもテクスチャをいかにうまく描くかが重要ですね。