FC2/ JRANK/ bloog/ ranQ/ 人気blogランキング
Astro de 3D(11) PerspectiveProjection は放棄<2>
前回の解説編。
以前、自作の三次元変換行列を使った 3D 表現を試みたことがありました。
そのとき、頂点をクラスとして整備しましたが、今回はそれを流用します。名前はそのまま Vertex クラスとします。
というか、自作クラスによる 3D 表現シリーズで作った三次元変換行列クラスと三次元座標クラスを、それぞれ Flash ビルトインのクラスの Matrix3D と Vector3D に置き換えたものが、今回の Astro de 3D シリーズなワケです。
Astro de 3D(10) PerspectiveProjection は放棄<1>
PerspectiveProjection についていろいろ試してみました。
今まで私が得てきた 3D 表現の知識と PerspectiveProjection の挙動とに割と大きな齟齬があり、けっこう使いづらいです。
ちゃんと学べば使いこなせるのかもしれませんが、まだまだ資料が少ないし、自ら解析していこうと思わせるほどの魅力を持ったクラスとも思えません。
それと、私が今まで試みてきた 3D 表現には、ビュー座標(カメラ)が欠落しています。
カメラが無いと、3D 空間内を縦横無尽に動き回るということができません。
ROXIK temporaries. にあるような作品を作るにはカメラが必須。
なのでこれ以上 PerspectiveProjection について検証するのやめにして、ビュー座標の会得に力を注ぎ込みたいと思います。
以下、PerspectiveProjection をあきらめるに至った経緯と今後の展開についてまとめます。
Astro de 3D(9) 〜Matrix3D 使用編 改〜
前回、表示オブジェクトの三次元表現に関わるプロパティを設定すると、暗黙的に Matrix3D が作られるという話をしました。
このコードでは明示的に Matrix3D を生成しました。
しかし createCube メソッドにおいて、すべての面 Shape はその生成の際に z プロパティか rotation[X|Y|Z] プロパティのいずれかを定義します。
ということは暗黙的に Matrix3D が生成されるんだから、何もわざわざ明示的に Matrix3D を作らんでもよいだろうが、ということになるワケだこれが(前々回のラストでちこっと触れたのはこういうこと)。
Astro de 3D(8) 〜Matrix3D の 暗黙的生成〜
前回のコードでは明示的に二種類の Matrix3D を生成しました。
ところで、表示オブジェクトを生成すると、それに対応した二次元マトリクスが暗黙的に生成されますよね。 そしてその暗黙的に生成された二次元マトリクスは、以下のプロパティでもってアクセスすることができます。
DisplayObject.transform.matrix
三次元マトリクスもそんな風に暗黙的な生成が成されるのか否か、というのが今回のテーマです。
Astro de 3D(7) 〜明示的 Matrix3D 使用編 解説〜
今回のコードでは明示的に二種類の Matrix3D を使用しています。
ひとつは、3D 空間全体を回転させるために使う Matrix3D。
もうひとつは面となる Shape を配置するために使う Matrix3D。
以後便宜的に前者を GlobalMat、後者を localMat と呼びます。
GlobalMat は1個、localMat は各面に1個なので計6個、あわせて7個の Matrix3D が存在しているわけです。
またまた、前のエントリーに戻るのがめんどうなので、ここでソースを再掲しますよ
- Main002.as (再掲)
Astro de 3D(6) 〜明示的 Matrix3D 使用編〜
反省したオレは強いぜぇ〜(by 音石明)
前回の反省に立って、親オブジェクトの rotation[X|Y|Z] ですべてを済まそうなんて手抜きをせずに、今回は6枚の正方形 Shape を統括する Matrix3D を使った三次元回転表現を試してみます。
Astro de 3D(5) 〜青春の蹉跌 解決編〜
前回は、Papervision3D 的なアプローチを用い、正方形平面6枚を使って立方体を実現しようとするも、孔明の罠に嵌ってZソートが働かず退却の憂き目を見たという話でした。
しかし、こんなこともあろうかとソース中にいろいろなコードを仕込んでおいたのさ。
zsort メソッドの術式を解放。 コメントアウトを消して、trace が機能するようコードを書き換えて今一度コンパイル。
いちいち前回のエントリーに戻ってソースを見るのはめんどくさいので下に再掲しました。
- Main001.as (再掲)



