let canvas = document.createElement("canvas");
let context = canvas.getContext("2d");
//开启抗锯齿
canvas.getContext("2d").imageSmoothingEnabled = true;
var devicePixelRatio = window.devicePixelRatio || 1
var backingStoreRatio = context.webkitBackingStorePixelRatio ||
context.mozBackingStorePixelRatio ||
context.msBackingStorePixelRatio ||
context.oBackingStorePixelRatio ||
context.backingStorePixelRatio || 1
var ratio = devicePixelRatio / backingStoreRatio
canvas.width = 386 * ratio;
canvas.height = 386 * ratio;
context.scale(ratio,ratio)
//canvas 实体
context.fillStyle = "rgba(0,0,0,0.65)"; //填充带透明颜色
context.fillRect(0,0,300,80); //x,y,width,height 线框中填充背景长宽高
//canvas 文字
context.fillStyle = "#f7f7f7";
context.font = "55px bold Arial";
context.fillText(item.name, 30, 60);
item.texture = new THREE.Texture(canvas); //就是上面的canvas,将它写在一个函数中然后返回。
item.texture.needsUpdate = true;
item.spriteMaterial = new THREE.SpriteMaterial({map: item.texture});
item.sprite = new THREE.Sprite(item.spriteMaterial);
item.sprite.scale.set(2.5, 2.5, 2.5); //大小缩放
item.sprite.position.set(item.position.x, item.position.y, item.position.z); //位置
item.sprite.name = "标识图";
item.add(item.sprite)
scene.add(item.sprite); //将其放入场景中
但是我希望实现下面的效果
好凄凉,这是CSDN,WEBGL分支方向不如去技术交流群
three.js也只用过皮毛,之前有个项目涉及到3d模型,还是别人开发好的sdk,three.js用的太少了帮不了
css3D+精灵+贴图的方案实践出来了,但是效果很差。
1、css3D贴图,图片不能动,但是精灵对象会在3D场景中动。
2、贴图会遮挡模型。