Utils3D.projectVectors で 3D 表現の次なるステージへ(4)
2009/10/31 19:32 - AS3.0
Utils3D.projectVectors について調べていたら、それの代わりになりそうな Matrix3D.transformVectors なるメソッドを見つけて慌てた、というのが前回の粗筋でした。
で、Matrix3D.transformVectors の想定される使い方がどのようなものか分からないので、結論を出すのは早計かも知れませんが、どうも Utils3D.projectVectors を使った方が良さそうです。
いちどきに一つの頂点しか扱えない Matrix3D.transformVector を使っていたときと同様の方法で、Matrix3D.transformVectors による 3D 表現の雛形を組んでみました。 wonderfl に投稿したので、どんな風なのかというのは実際に見てください。
なんか投影の歪み具合が不自然です。
PerspectiveProjection の fieldOfView を75なんていう極端な値にしているせいも、もちろんあるでしょうが、でも fieldOfView の既定値である55にしても、やっぱり歪みが不自然です。 一番奥まったときの動きが不審過ぎる。
この変な歪みには、Matrix3D の計算過程において Utils3D.projectVectors では下記のようにおこなっていた、PerspectiveProjection の加算をしていないことが関与しているんじゃないかとは思うんですが、いまいちよく分かりません。
何で今回 PerspectiveProjection の加算をしていないかというと、加算したら、ステージに入りきらないくらい極端に XY座標値が大きくなってしまったからです。
ネイティブのクラスやメソッドを使った 3D 表現についての資料はまだほとんど無い状況だから、この辺りは今後の課題ということで、折を見ていろいろ試していこうかと思います。
シリーズ
- Utils3D.projectVectors で 3D 表現の次なるステージへ(3)
- Utils3D.projectVectors で 3D 表現の次なるステージへ(2)
- Utils3D.projectVectors で 3D 表現の次なるステージへ(1)