2007年7月18日水曜日

Silverlight で 3D 描画

Silverlight で 3D 描画をしようとしている人たちがいる。


Balderpython cube3D demo などを見つけた。Sliverlight は WPF と違って3Dエンジンを持っていないから、どうしているのかと思ってソースを見たところ、どれも自前でトランスフォーム、透視変換、テクスチャマッピング、バックフェースカリング等を行っているようだ。


考えてみれば、シーンからトライアングルのセットアップまでできてしまえば、あとはフィルすればよいのだから GPU は勿体無いがこういうことは Sliverlight で可能だ。いろいろなブラウザ上の Javascript で実行可能になるので使いどころはいろいろあるかもしれない。それに3D描画の勉強にも良いのかもしれない。


ただ隠面消去はどうすればよいのだろう。ひとつのキューブが回転するだけならカリングだけでも大丈夫だが、シーンが複雑になると絵が破綻する(現在のBalderがそうだ)。Zバッファは流石に使えないと思うので、Zソートをポリゴン毎にするくらいしか思いつかない。


いずれにせよ面白い。


0 件のコメント:

コメントを投稿