【发布时间】:2015-01-08 03:14:29
【问题描述】:
我创建了一个 3D 地图,并通过 Sprites 在该地图上标记点。除了精灵标签的定位之外,这本身就可以正常工作。
因为我正在创建一个地图,所以相机可以从 0 度倾斜到 90 度,而理想情况下,标签总是在屏幕上它正在标记的项目正上方保持一定距离。但不幸的是,由于精灵总是以它们的原点为中心并且与项目重叠,我必须在 Y 世界轴上向上移动精灵,并且随着相机的倾斜,精灵的中心位置会发生变化。如果查看的项目偏离中心,这看起来很奇怪,并且当相机直视下方时效果不佳。
没有 jsfiddle 方便,但我在 http://leeft.eu/starcitizen/ 的应用程序应该会给人一个很好的印象。
THREE.SpritePlugin 的代码向我建议应该可以使用“matrixWorld”在渲染时将精灵在屏幕的 Y 轴上向上移动一段距离,但我不知道如何使用它,我也不知道我完全确定这是我首先需要使用的。
渲染时是否可以在屏幕上向上移动精灵,或者改变它们的原点?或者有没有其他方法可以达到同样的效果?
Three.js r.67
【问题讨论】:
-
three.js r.67 不支持更改精灵的来源。您可以根据相机视角移动精灵的位置。您还可以使用
OrthographicCamera在第二遍中渲染精灵,就像在threejs.org/examples/webgl_sprites.html 中一样,但是您现在拥有的可能会更好。
标签: three.js