« のぼってん | メイン | Papervisionと3Dソフト »

Papervisionのスクリーン座標

ひさしぶりの更新で、技術的な話なんですが
最近、会社でPapervision3D触ってます。
ActionScript3にも、遅まきながらデビューしつつ。
今日、CS3の日本語版が会社に届いたし。

今ハマっているのはPapervision3Dのワールド座標系から
2Dスクリーン座標系への変換処理。
普通に考えると
3Dワールド座標×カメラビュー行列×プロジェクション行列
(その後にビューポート変換?)
だけど、Papervisionでこういう行列をどうやって取得するか今イチわからんし
分かったとしても計算重そうやし。
それで今日、DisplayObject3DのcontainerをgetBoundsして矩形を取得するという方法を
思いついたのでそれでやってるのだけど、これってダサイのかなぁ。
誰か良い方法知ってたら教えてくだせ・・

トラックバック

このエントリーのトラックバックURL:
http://www.horned.org/mt/mt-tb.cgi/15

コメント (6)

horned:

自己レス

やっぱりださかったかも。
var s0 :Vertex2D = sun.projected[sun.geometry.faces[0].vertices[0]];
if (s0) renderFlare(flare_mc, s0.x, s0.y);
というような感じでやればよさげ。

K子:

自作自演乙

var s0 : UTM[53].(x,y).projection.global
set map:Map0,
Map0:s0.draw.map.global
printf("Hello world")

horned:

Hello world

horned:

さらに追記。
papervisionがver1.5になってprojectedがなくなった。
かわりに、
sun.geometry.faces[0].vertices[0].vertex2DInstance
みたいな感じで使えます。

horned:

さらに追記。8/6のrevisionから
object.screen.x
object.screen.y
でobjectの中心座標が参照可能になった。

コメントを投稿

About

2007年06月22日 01:02に投稿されたエントリーのページです。

ひとつ前の投稿は「のぼってん」です。

次の投稿は「Papervisionと3Dソフト」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。