介绍如何制作地板热点,如下面动图所示。
演示
以下隐藏内容只提供VIP赞助会员,VIP会员说明请查看置顶文章
说明
- 热点将由tx、ty、tz坐标(而不是球面ath/atv/depth坐标)进行”三维放置”,并且定义为始终与地板平行旋转。
- 需要手动定义一个自定义的 ‘地板高度’,每一个全景的’地板高度’可以是独立的,实际就是拍摄全景时相机的高度。
- 接下来就是获取地板热点的三维坐标:
- 首先使用screentosphere动作获取鼠标位置的球面坐标。
- 然后使用spheretospace动作将该球面坐标转换为三维单位/方向向量,depth为1。
- 只需通过缩放’floorheight/unit-vector-y‘单位向量即可让热点到达地板。
1 2 3 4 5 6 7 |
set(floorheight, 160); screentosphere(mouse.x,mouse.y, h,v); set(d,1); spheretospace(h,v,d, x,y,z); calc(hotspot[name].tx, x*floorheight/y); calc(hotspot[name].tz, z*floorheight/y); copy(hotspot[name].ty, floorheight); |
以上几行代码可让地板热点在空间中正确放置,无论从哪一个视角看效果都是非常不错的。
此外,还可以这样做。
- 例如,自动旋转热点到目标方向。
- 根据距离改变热点透明度。
- 甚至在三维空间中向着热点所在的位置前进,当然这仅限于具有深度信息的全景图。
源码注释
以下隐藏内容只提供VIP赞助会员,VIP会员说明请查看置顶文章
案例下载
链接:https://pan.baidu.com/s/1ZoGoMt0Naz9gVBN8Y8hwbg
以下隐藏内容只提供VIP赞助会员,VIP会员说明请查看置顶文章