我创建了一个3D地图,并通过Sprites在该地图上标记点。这本身没有问题,但是Sprite标签的定位有些棘手。
因为我正在创建地图,相机可以从0度到90度倾斜,而理想情况下,标签始终保持一定距离直接在屏幕上方的物品上方。但不幸的是,由于Sprites始终围绕其原点居中,这会重叠物品,所以我必须在Y世界轴上将Sprite向上移动,这样Sprite的中心位置随着相机的倾斜而改变。如果查看的物品偏离中心,则会出现奇怪的效果,并且当相机朝向直下时效果也不太好。
没有jsfiddle方便,但我的应用程序http://leeft.eu/starcitizen/应该能很好地展示它的外观。
THREE.SpritePlugin的代码表明,我应该可以使用“matrixWorld”在渲染时将Sprite向上移动一定距离,但我无法弄清楚如何使用它,也不确定这是我需要使用的东西。
因为我正在创建地图,相机可以从0度到90度倾斜,而理想情况下,标签始终保持一定距离直接在屏幕上方的物品上方。但不幸的是,由于Sprites始终围绕其原点居中,这会重叠物品,所以我必须在Y世界轴上将Sprite向上移动,这样Sprite的中心位置随着相机的倾斜而改变。如果查看的物品偏离中心,则会出现奇怪的效果,并且当相机朝向直下时效果也不太好。
没有jsfiddle方便,但我的应用程序http://leeft.eu/starcitizen/应该能很好地展示它的外观。
THREE.SpritePlugin的代码表明,我应该可以使用“matrixWorld”在渲染时将Sprite向上移动一定距离,但我无法弄清楚如何使用它,也不确定这是我需要使用的东西。
在渲染时,是否可以将精灵向上移动,或者改变它们的原点?或者还有其他方式可以实现相同的效果吗?
Three.js r.67