Three.js 旋转立方体时,使文本始终与平面正交

Three.js 旋转立方体时,使文本始终与平面正交,three.js,Three.js,我正在使用以下模式创建显示在三维立方体上的文本标签: canvas = createTextCanvas(text, color, font, size); texture = new THREE.Texture(canvas); geom = new THREE.PlaneBufferGeometry(canvas.width, canvas.height, segW, segH); material = new THREE.MeshBasicMaterial({map: texture, t

我正在使用以下模式创建显示在三维立方体上的文本标签:

canvas = createTextCanvas(text, color, font, size);
texture = new THREE.Texture(canvas);
geom = new THREE.PlaneBufferGeometry(canvas.width, canvas.height, segW, segH);
material = new THREE.MeshBasicMaterial({map: texture, transparent: true});
mesh = new THREE.Mesh(geom, material);

mesh.position.x = x;
mesh.position.y = y;
mesh.position.z = z;
texture.needsUpdate = true;
标签及其位置在立方体每条边的
for
循环中设置。这将导致标签看起来与以下内容类似:

但是,当我旋转立方体时(使用
轨道控制
),您将看到标签不再像上面那样垂直显示:

因此,以
Cost
标签为例,每当立方体旋转时,我希望文本保持垂直方向。基本上,我试图模仿VTK中轴标记的行为

所以我认为这里的解决方案是将标签的
up
向量设置为始终与平面正交的向量。但我不知道如何实现这一点。如有任何建议或示例,将不胜感激


如果有帮助的话,我正在使用
BoxGeometry
MeshNormalMaterial

构建立方体,你的意思是标签是否随立方体移动? 如果不是,则有一个示例:。标签始终面向您,但可能不垂直。 否则,您可能需要画布纹理,标签是一个与立方体类似的对象,您可以设置其位置使其保持垂直。但有时看起来不太好。示例:

我想你只是希望当你改变视线时标签总是对着你