2013-08-22 103 views
3

我想创建一个简单的矩形与.mp4视频作为纹理。根据three.js文档(http://threejs.org/docs/#Reference/Textures/Texture),这应该是直截了当的。使用视频作为纹理与Three.js

当我把视频链接,我得到的是一个黑色的彩盒,没有纹理。我已经通过用jpg图像替换视频来测试代码,并且它工作正常。有人能解释我做错了什么吗?

我已经看到了视频播放的例子,首先将它链接到一个视频元素,然后在画布上复制这些帧。我想尝试在three.js文档中提到的直接方式。

回答

3

将视频想象为一系列图像。因此,要在3D对象上“播放”这个视频 - 您必须将该序列的每一帧传递给您的素材,然后更新该素材。

良好的开端是在这里:https://github.com/mrdoob/three.js/wiki/Updates

在这里:http://stemkoski.github.io/Three.js/Video.html

+0

是的,我了解并已经取得的代码,以这种方式工作。但是我想直接通过传递mp4文件链接来实现视频纹理。虽然我还没有看到任何例子这样做或者能够使它自己工作,但根据文档这里http://threejs.org/docs/#Reference/Textures/Texture应该是可能的。 可能是我误解了文档,目前唯一的办法就是使用视频标签和基于帧更新纹理。 – Gaurav

+0

他们是three.js文档中的一个错误,它让我认为视频可以直接用作纹理。讨论irc,似乎你说的是目前唯一可能的解决方案。 – Gaurav

+0

考虑到KISS规则(保持简单愚蠢),每个人都试图尽可能保持自己的代码整洁,所以如果有更方便的解决方案来解决您的问题 - 它已经在某些示例中使用了。 –