Three.js 在三维对象上方附加文本
我想知道是否可以在3D对象上方附加文本? 如果是,我会怎么做 到目前为止,我正在执行以下操作来加载网格及其材质,最后将其添加到一个3.Object3D();并将其添加到场景中。很好,没有任何问题。 下一步是,我想在它的上方显示一个漂亮的文本,这个对象总是固定的,从各个角度都可以看到Three.js 在三维对象上方附加文本,three.js,label,game-engine,Three.js,Label,Game Engine,我想知道是否可以在3D对象上方附加文本? 如果是,我会怎么做 到目前为止,我正在执行以下操作来加载网格及其材质,最后将其添加到一个3.Object3D();并将其添加到场景中。很好,没有任何问题。 下一步是,我想在它的上方显示一个漂亮的文本,这个对象总是固定的,从各个角度都可以看到 loader.load('assets/' + enemyUrl, function (geometry, materials) { material = new THREE.MeshFaceMaterial(
loader.load('assets/' + enemyUrl, function (geometry, materials) {
material = new THREE.MeshFaceMaterial( materials );
model = new THREE.SkinnedMesh( geometry, material );
var mats = model.material.materials;
for (var i = 0,length = mats.length; i < length; i++) {
var m = mats[i];
m.skinning = true;
}
ensureLoop(geometry.animations[0]);
function ensureLoop( tmp ) {
for ( var i = 0; i < tmp.hierarchy.length; i ++ ) {
var bone = tmp.hierarchy[ i ];
var first = bone.keys[ 0 ];
var last = bone.keys[ bone.keys.length - 1 ];
last.pos = first.pos;
last.rot = first.rot;
last.scl = first.scl;
}
}
model.scale.set(2.5,2.5,2.5);
// TODO: Randomize where to put it in the world
yawObject.position.y = spawnPosition.y;
yawObject.position.x = spawnPosition.x;
yawObject.position.z = spawnPosition.z;
yawObject.add(model);
scene.add(yawObject);
});
loader.load('assets/')+enemyUrl,函数(几何体、材质){
材料=新的三个网格面材料(材料);
模型=新的三个。蒙皮网格(几何体、材质);
var mats=模型。材料。材料;
对于(变量i=0,长度=mats.length;i
大概是这样的:
这就是我的游戏现在的样子:
确保这是可能的。你可以创建一个画布,上面有文字,你可以在一个平面上使用它作为纹理,这个平面总是看着相机,你也可以用一个粒子来做,但是我不太确定它是如何工作的,因为粒子材质有一个大小参数。比如:
var name = 'Rovdjuret';
var canvas = document.createElement('canvas');
var ctx = canvas.getContext("2d");
ctx.font="20px Georgia";
ctx.fillText(name,10,50);
var texture = new THREE.Texture(canvas);
texture.needsUpdate = true; //just to make sure it's all up to date.
var label = new THREE.Mesh(new THREE.PlaneGeometry, new THREE.MeshBasicMaterial({map:texture}));
在渲染/动画循环中,可以使所有标签看起来像摄影机:
label.LookAt(camera.position);
请参阅。使用上述方法并将纹理应用于精灵可以使事情变得更简单。特别是在标签和/或相机是旋转父对象的子对象的情况下。您现在将如何做到这一点?当我使用最新版本的threejs执行此操作时,文本看起来被拉伸了。听起来您使用的网格正在拉伸纹理。您是否尝试过调整平面几何图形的大小?