把原生 DOM 标签转换后加入到 3D 场景空间中显示

把原生 DOM 标签转换后加入到 3D 场景空间中显示
function domTo3D() {
  // 1. 准备原生 DOM 标签
  const tag = document.createElement('span')
  tag.innerHTML = '我是文字'
  tag.style.color = 'white'

  // 2. 引入 CSS3DObject, CSS3DRenderer 并把 DOM 转换成 3D 物体并加入到场景中
  // 原生标签的 px 的值会平移到 3d 空间中作为单位
  const tag3d = new CSS3DObject(tag)
  tag3d.scale.set(1 / 16, 1 / 16, 1 / 16)
  scene.add(tag3d)

  labelRenderer = new CSS3DRenderer()
  labelRenderer.setSize(window.innerWidth, window.innerHeight)
  labelRenderer.domElement.style.pointerEvents = 'none' // 在什么条件下让标签触发鼠标交互事件
  labelRenderer.domElement.style.position = 'fixed'
  labelRenderer.domElement.style.left = '0'
  labelRenderer.domElement.style.top = '0'
  document.body.appendChild(labelRenderer.domElement)

  // 重要:CSS3DRenderer 是一个新的渲染器,需要在渲染循环调用并适配
}
基于 CSS3DRenderer 会设置单独的一个 div 容器用于加载显示旋转位移缩放标签物体

基于 CSS3DObject 把获取/创建的 DOM,转成 three.js 的 3D 物体

posted @   jialiangzai  阅读(82)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!

喜欢请打赏

扫描二维码打赏

微信打赏

点击右上角即可分享
微信分享提示