模型标注——平面网络模型Mesh

郭隆邦老师threejs教程学习笔记

在三维场景中可以创建一个矩形平面网格模型,然后把表示特定含义的图像或canvas画布作为矩形网格模型的纹理贴图,这样,矩形网络模型就可以表示作为一个模型的热点或标签,显示相应的信息。

mesh网格模型表示一个红豆的存储仓库,然后通过PlaneGeometry创建一个矩形网格模型,把一张红豆图片作为矩形平面网格模型的纹理贴图。

    const textureLoader = new THREE.TextureLoader();
    const plane = new THREE.PlaneGeometry(40, 40); // 创建一个矩形几何体
    //标签使用基础网格材质即可
    const planeMaterial = new THREE.MeshBasicMaterial({
      //矩形平面网格模型设置纹理贴图
      map: textureLoader.load('./标签图片/红豆.png'),
      // side: THREE.FrontSide, // 默认前面显示,可以不设置
      // side: THREE.DoubleSide, // 双面显示
      // side: THREE.BackSide, // 背面显示
      transparent: true, // 开启透明效果,否则颜色贴图map的透明不起作用
    });
    const planeMesh = new THREE.Mesh(plane, planeMaterial);
    planeMesh.position.copy(mesh.position)
    planeMesh.position.y += 80
    scene.add(planeMesh)

模型标签位置角度控制

表示模型标签的平面网格模型的位置可以通过position属性设置,角度状态可以通过.rotateX()等方法旋转网格模型。

// 旋转90度为水平状态
planeMesh.rotateX(-Math.PI/2)
planeMesh.position.y = -50;//y轴设置在地面位置
planeMesh.position.z += 50;//在网格模型基础上沿着z平移一定距离

材料选择

模型标签的显示内容主要通过颜色贴图来表现,不需要threejs的光照计算,所以直接使用MeshBasicMaterial不受光照影响的基础网格材质

材质透明

模型标签的平面网格模型使用的颜色贴图背景是透明的,要设置transparent属性的值为true,开启透明。

const planeMaterial = new THREE.MeshBasicMaterial({
  // 开启透明效果,否则颜色贴图map的透明不起作用
  transparent: true,
});

标签单双面显示

矩形平面网格模型模型表示的模型标签在项目中你想如何显示,可以根据具体情况自己去设置。

const planeMaterial = new THREE.MeshBasicMaterial({
  side: THREE.FrontSide, // 默认前面显示,可以不设置
});
const planeMaterial = new THREE.MeshBasicMaterial({
  side: THREE.DoubleSide, // 双面显示
});
const planeMaterial = new THREE.MeshBasicMaterial({
  side: THREE.BackSide, // 背面显示
});

动态更新模型标签

比如存储红豆的仓库存储了绿豆,这时候需要把矩形平面网格模型的红豆颜色贴图更换为绿豆颜色贴图。

// 动态更新模型标签颜色贴图
planeMaterial.map = textureLoader.load('./标签图片/绿豆.png')

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值