纳金网
标题:
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