使用videoTexture作为opacityTexture

时间:2019-04-22 21:46:50

标签: babylonjs

如何在babylonJS中将视频(mp4)用作Alpha贴图?

在three.js中,将视频用作纹理就像将视频纹理分配给alphaMap(而不是漫射贴图)一样简单。

这是Three.js-Demo中的预期结果。

我试图在babylonJS中做同样的事情,但没有成功。这是我到目前为止的babylonJs demo

var mat = new BABYLON.StandardMaterial("mat", scene);

var videoTexture = new BABYLON.VideoTexture("video", ["textures/babylonjs.mp4", "textures/babylonjs.webm"], scene, true, true);

mat.opacityTexture = videoTexture;

任何想法都欢迎。 谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用videoTexture.getAlphaFromRGB = true;来使用所有三个组合的Alpha通道。默认情况下,它仅使用红色通道,该红色通道在源视频中没有足够的差异来显示。

完整的示例:

var mat = new BABYLON.StandardMaterial("mat", scene);

var videoTexture = new BABYLON.VideoTexture("video", ["textures/babylonjs.mp4", "textures/babylonjs.webm"], scene, true, true);
videoTexture.getAlphaFromRGB = true;
mat.opacityTexture = videoTexture;