纳金网

标题: PV3D制作全景时添加热点的方法分享 [打印本页]

作者: yeu1233    时间: 2012-8-31 09:11
标题: PV3D制作全景时添加热点的方法分享
经过我不懈的努力,总算成功解决了全景中热点的不变形添加。

步骤如下:

1、首先建一个Sphere,将用鱼眼镜头拍摄的图片作为材质贴到这个球的内部,鼠标拖动时旋转镜头。具体的代码就不写了,这个应该不难。用论坛里的PV3D中的教程改一下就可以了。

2、再建一个三维空间物体,如一个Plane,然后把它调整到要放热点的地方。

3、最重要的一步,就是在场景中放一个热点的影片剪辑,在全景代码中加一个定时器,最好间隔小一些,我用的是10.

var timer:Timer=new Timer(10);

给这个定时器加事件,根据Plane的实时坐标转换的屏幕坐标调整热点影片剪辑的坐标就可以了。如下是三维坐标转二维的代码,其实这才是最主要的东西,自己可以多试几次:




    var real2DX:Number=0;

     
    var real2DY:Number=0;

     
    plane.calculateScreenCoords(camera);

     
    real2DX = plane.screen.x + viewport.width/2;

     
    real2DY = plane.screen.y + viewport.height/2;

     
    trace(real2DX+"||"+real2DY);//这个就是二维坐标了



完成了。

另外附上三维转二维坐标及二维转三维坐标的代码:






    3D转2D

     
    do3d.calculateScreenCoords(camera3D);

     
    var real2DX:Number = do3d.screen.x + viewport3D.width/2;

     
    var real2DY:Number = do3d.screen.y + viewport3D.height/2;

     
    2D转3D

     
    var ray:Number3D = camera.unproject(viewport.containerSprite.mouseX, viewport.containerSprite.mouseY);

     
    ray = Number3D.add(ray, camera.position);













欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5