ThreeJs制作全息投影视频

简介: 这篇文章介绍了使用Three.js来创建全息投影效果的视频教程,涵盖了实现全息效果的技术要点和具体实施步骤。

之前有讲过在同一个场景中添加多台相机以从不同角度查看模型,后来发现全息投影需要的内容就是从不同角度拍摄四个视频,播放之后放上一个透明的四棱锥形状,实现全息投影的效果,我觉得可以用threejs来做一个全息投影的视频,因为threejs支持交互,所以后期还可以根据需要做一个可以互动的全息投影视频,下面我们接着上次的方法来写:

首先要知道全息投影的视频是四个方向的,在投影的时候将每个方向的内容投射到四棱锥的每个面上,我们先找一个人物的模型:

然后将这个模型添加到场景中:

initModel(){
      const loader = new GLTFLoader()
      loader.load("/static/model/girl.glb", (gltf) => {
        this.model = gltf.scene;
        scene.add(this.model)   // 加入场景
      })
    },

然后调整每个相机的位置:

 initCamera(){
      this.camera1 = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 10000);
      this.camera1.position.set(200,0,200);
      this.camera1.lookAt(0,100,0)

      this.camera2 = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 10000);
      this.camera2.position.set(-200,0,-200);
      this.camera2.lookAt(0,100,0)

      this.camera3 = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 10000);
      this.camera3.position.set(-200,0,200);
      this.camera3.lookAt(0,100,0)

      this.camera4 = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 10000);
      this.camera4.position.set(200,0,-200);
      this.camera4.lookAt(0,100,0)
    },

此时效果如下,虽然div是四个方向了,但是内容不是的,所以还需要旋转div的角度实现都是人物的下方对准中间的空心。

#container2{
  position:absolute;
  top:300px;
  left:700px;
  width:400px;
  height:400px;
  transform: rotate(90deg);
  background-color: #AAAAAA;
}
#container3{
  position:absolute;
  top:600px;
  left:400px;
  width:400px;
  height:400px;
  transform: rotate(180deg);
  background-color: #AAAAAA;
}
#container4{
  position:absolute;
  top:300px;
  left:100px;
  width:400px;
  height:400px;
  transform: rotate(270deg);
  background-color: #AAAAAA;
}

好了,效果是完成了,不过没有材料验证,等凑够了材料再看验证结果吧,

效果补上:测试的时候发现黑色的模型显示稍微模糊点,所以换了个亮一点颜色的,找了四个塑料片制作的,效果可能没那么好,但是凑合可以看到效果了。

WechatIMG110.jpg
全息投影模拟

这里不支持上传视频,我就只能上传个图片了,如果想看动态效果可以私我,我发给你视频,或者需要源码也可以给我私信

相关文章
pip install --upgrade transformers
pip install --upgrade transformers
1292 1
vscode将本地代码实时同步到服务器
vscode近些年变得越来越流行了,主要是IDEA用上去实在有点卡,机器卡崩溃几次,这段时间也想用vscode体验一下,在自己的一些项目上面,想实现像phpstorm或者goland那样直接把代码通过sftp传到服务器上面,那么怎么来做这个事情呢,经过一番研究,把方案整理下来。
2310 0
Threejs创建天空和太阳
这篇文章讲解了如何使用Three.js中的Sky组件来创建真实的天空与太阳效果,包括调整天空的颜色、太阳的位置以及实现大气散射等技巧。
1164 3
|
11月前
Edge浏览器禁止更新教程,Edge浏览器还有这操作?新建标签页到处是广告总得解决吧
Edge浏览器近年口碑下滑,广告增多、资源占用高、后台进程顽固等问题频现。本文教你如何关闭新建标签页广告、禁用自动更新及冗余后台进程,并提供小巧实用的禁用工具下载,助你优化浏览体验。
3828 0
Threejs制作骨骼模型
这篇文章详细介绍了在Three.js中创建骨骼动画的过程,包括骨骼节点的创建、权重设置以及控制骨骼关节实现动态效果的步骤,并通过一个具体的圆柱体模型演示了如何添加和控制骨骼动画。
738 2
|
Java 开发者
在 Java 中,一个类可以实现多个接口吗?
这是 Java 面向对象编程的一个重要特性,它提供了极大的灵活性和扩展性。
1329 58
|
弹性计算 数据可视化 数据挖掘
超好用的开源数据可视化分析工具DataEase
DataEase是一款强大的数据分析工具,支持多种数据源,通过拖拽操作即可快速生成图表,提供丰富的报表样式。本文介绍了如何使用DataEase创建数据分析仪表板,以及在阿里云上一键部署DataEase社区版的详细步骤。
超好用的开源数据可视化分析工具DataEase
|
域名解析 网络协议
DNS服务工作原理
文章详细介绍了DNS服务的工作原理,包括FQDN的概念、名称解析过程、DNS域名分级策略、根服务器的作用、DNS解析流程中的递归查询和迭代查询,以及为何有时基于IP能访问而基于域名不能访问的原因。
2349 2
DNS服务工作原理
|
传感器 小程序 开发工具
【规范】小程序发布,『小程序隐私保护指引』填写指南
本文详细解析了小程序隐私保护指引的填写方法,包括开发者处理的信息、第三方插件信息、用户权益等内容,并提供了详细的填写范例,帮助读者在发布小程序时避免常见问题,是一份实用的参考指南。
4742 1
【规范】小程序发布,『小程序隐私保护指引』填写指南

热门文章

最新文章