ひさしぶりの更新で、技術的な話なんですが
最近、会社でPapervision3D触ってます。
ActionScript3にも、遅まきながらデビューしつつ。
今日、CS3の日本語版が会社に届いたし。
今ハマっているのはPapervision3Dのワールド座標系から
2Dスクリーン座標系への変換処理。
普通に考えると
3Dワールド座標×カメラビュー行列×プロジェクション行列
(その後にビューポート変換?)
だけど、Papervisionでこういう行列をどうやって取得するか今イチわからんし
分かったとしても計算重そうやし。
それで今日、DisplayObject3DのcontainerをgetBoundsして矩形を取得するという方法を
思いついたのでそれでやってるのだけど、これってダサイのかなぁ。
誰か良い方法知ってたら教えてくだせ・・
自己レス
やっぱりださかったかも。
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の中心座標が参照可能になった。
今なら↓ココとか
http://www.nabble.com/3D-%3E%3E-2D-coordinates-td14730886.html