Papervisionのスクリーン座標

| コメント(6) | トラックバック(0)

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

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

トラックバック(0)

トラックバックURL: http://www.horned.org/mt-tb.cgi/16

コメント(6)

自己レス

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

自作自演乙

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

Hello world

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

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

コメントする

このブログ記事について

このページは、hornedが2007年6月22日 01:02に書いたブログ記事です。

ひとつ前のブログ記事は「のぼってん」です。

次のブログ記事は「Papervisionと3Dソフト」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。