ThreeJs制作全息投影视频

        之前有讲过在同一个场景中添加多台相机以从不同角度查看模型,后来发现全息投影需要的内容就是从不同角度拍摄四个视频,播放之后放上一个透明的四棱锥形状,实现全息投影的效果,我觉得可以用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;
}

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

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

全息投影模拟

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

baker_zhuang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值