Rest Term

Stardust test 2 Klein Bottle

前回に引き続き Stardust を触っています。
今回は3D関連の処理を試してみました。

利用フローは基本的に2Dの時と同じなので簡単です。
カメラ関連のAPIを調べつつ、付属のサンプルを読めばだいたい掴めるかと。
Papervision3D などの外部の3Dエンジンを組み合わせるのではなく、
idv.cjcat.stardust.threeD.* パッケージを使っていきます。
(2D関連は idv.cjcat.stardust.twoD.* パッケージ)

例によって昔作ったものをコンバートするわけですが、
今回は クラインの壺 (Klein bottle) を描いてみました。
ただ、むりやり球を並べて描いているので形がとてもわかりづらいです;;
さすがに Stardust には "線を扱う" クラスの追加実装予定は期待薄かも。

wonderfl にも投稿しておいたので、コードはそちらで。
また、self fork して メビウスの帯 Ver. も作っておきました。

Vec3D クラスは高機能で便利なのですが、7kb もある重量級のクラスなので、
座標値のみを覚えておきたい場合は、単一の Vector で管理した方がいいと思います。
コードは読みづらくなりますが、空間・時間効率共にかなり良くなるはずです。
(このケースだとたぶんL2キャッシュにがっつりヒットする)
あるいは、3次元の座標値のみを保持する小さなデータクラスを自分で作って管理するか。

threeD パッケージは他にもいろいろ面白そうなクラスがあったので、
また時間があるときに引き続き調べていきたいと思います。

Stardust in a Klein Bottle - wonderfl build flash online

Stardust ties Möbius Strip - wonderfl build flash online

・関連記事
クラインの壺 - pv3d - Rest Term
メビウスの帯 - pv3d - Rest Term

あわせて読む:

 

Tags:

Comments

No comments so far.

  • Leave a Reply
     
    Your gravatar
    Your Name