当前位置: 首页 > news >正文

threejs 添加css3d标签 vue3

如图所示,给收费站标注标签。步骤如下:

一、引入

import {CSS3DRenderer,CSS3DObject,
} from "three/examples/jsm/renderers/CSS3DRenderer";

二、

//一、申明css3渲染器
const label3DRenderer = ref()//二、创建css3d渲染器--将渲染器加入body
const css3dRenderer = () => {label3DRenderer.value = new CSS3DRenderer();label3DRenderer.value.setSize(window.innerWidth, window.innerHeight);label3DRenderer.value.domElement.style.position = "absolute";// 相对标签原位置位置偏移大小label3DRenderer.value.domElement.style.top = "0px";label3DRenderer.value.domElement.style.left = "0px";//设置.pointerEvents=none,以免模型标签HTML元素遮挡鼠标选择场景模型label3DRenderer.value.domElement.style.pointerEvents = "none";document.body.appendChild(label3DRenderer.value.domElement);
};
//三、创建一个函数返回一个div标签
const tag = (name) => {// 创建div元素(作为标签)var div = document.createElement("div");div.innerHTML = name;div.classList.add("tag");//div元素包装为CSS3模型对象CSS3DObjectvar label = new CSS3DObject(div);div.style.pointerEvents = "none"; //避免HTML标签遮挡三维场景的鼠标事件// 设置HTML元素标签在three.js世界坐标中位置// label.position.set(x, y, z);//缩放CSS3DObject模型对象label.scale.set(0.02, 0.02, 0.02); //根据相机渲染范围控制HTML 3D标签尺寸// label.rotateY(Math.PI / 2); //控制HTML标签CSS3对象姿态角度// label.rotateX(-Math.PI/2);return label; //返回CSS3模型标签
};//四、加载模型以后获取每个标签的位置把标签添加进senceloader.load("./收费站.glb", (gltf) => {isShowLoding.value = falsescene.add(gltf.scene)let group = gltf.scene.getObjectByName("车道中间标注2");group.children.map(item => {const label = tag(item.name)var pos = new THREE.Vector3();item.getWorldPosition(pos); //获取obj世界坐标、label.position.copy(pos);scene.add(label)})}, (xhr) => {});五、别忘记调用之前封装的函数(创建css3渲染器)css3dRenderer()

相关文章:

  • 自然语言到 SQL 转换:开启智能数据库交互新时代
  • cursor平替,试试 vscode+cline+openrouter 的方案,还能自定义 mcp-server 教程大纲
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】电商数据分析案例-9.2 流量转化漏斗分析
  • 企业微信自建消息推送应用
  • 技术视界 | 青龙机器人训练地形详解(三):复杂地形精讲之台阶
  • 二本计算机,毕业=失业?
  • 初识Linux · TCP基本使用 · 回显服务器
  • CROSS 技术全解析:边缘计算如何成为行业价值新引擎
  • [计算机科学#11]:编程语言简史,从二进制到简约表达的华丽转身,造就原因——“懒”
  • 解析小米大模型MiMo:解锁语言模型推理潜力
  • 线索二叉树
  • 服务器配置llama-factory问题解决
  • VR 南锣鼓巷:古老街区的数字化绘卷与沉浸式遨游​
  • 硬件选型:工控机的选择要素
  • 什么是 DDoS 攻击?从零到精通的全面解析
  • Tenorshare 4DDiG(数据恢复软件) v10.3.7.5 中文绿化版
  • shader中性能优化
  • 正则表达式实用指南:原理、场景、优化与引擎对比
  • 网络原理初识
  • VR制作软件用途(VR制作软件概述)
  • 牛市早报|国家发改委:今年将推出约3万亿元优质项目,支持民营企业参与
  • 东莞“超级”音乐节五一出圈背后:文旅热力何以澎湃经济脉动
  • 国家卫健委:有条件的二级及以上综合医院要开设老年医学科
  • 习近平出席俄罗斯总统举行的欢迎仪式
  • 全球第七个迪士尼主题公园将落户阿布扎比
  • 百济首次实现季度营业利润扭亏,泽布替尼销售额近57亿元