具有A帧和Three.js的视频透明度

问题描述 投票:0回答:1

我正在从A-Frame Github页面转发this open issue,希望有些人可能知道此问题的原因。它仍然无法与A-Frame 1.0.3一起使用,而且我真的不知道在哪里搜索。关于Github问题,有两个示例,一个使用A-Frame 0.8.0,另一个使用A-Frame 0.9.0。 javascript控制台中绝对没有警告或信息,因此很难找到问题所在。

在0.8.0版中,它使用了三个v90,在0.9.0版中,它使用了v101。因此,也许在“三个”的这两个版本之间做了一些修改,但我不知道是什么。

没有人找到一种在最新版本的A-Frame和/或Three.js上透明使用视频的方法吗?

感谢您的帮助:)

three.js aframe
1个回答
0
投票

(直到补丁1.1.0发布),您只需将必要的format属性添加到视频纹理即可解决该问题:

videoTexture.format = THREE.RGBAFormat

带有包含这样的修复程序的自定义组件:

// wait until the material is ready
this.el.addEventListener('materialtextureloaded', e => {
   // grab the material
   let mat = this.el.getObject3D('mesh').material
   // grab the map
   let map = mat.map
   // swap the format
   mat.map.format = THREE.RGBAFormat
   mat.map.needsUpdate = true
})

小提琴here

© www.soinside.com 2019 - 2024. All rights reserved.