2014-02-11 208 views
6

我正在寻找一种在THREE.js中使用GIF动画作为纹理的方法。我目前能够加载纹理(甚至是GIF格式),但它不会播放其动画。THREE.js中的动画GIF作为纹理

有没有办法做到这一点?我发现像这样的一些链接:

https://github.com/JordiRos/GLGif

http://stemkoski.github.io/Three.js/Texture-Animation.html

但我需要发挥GIF动画的质感,而不是在画布上。

+1

您说“我需要将GIF动画作为纹理进行播放,而不是在Canvas中”,但将Three.js纹理渲染为画布。 –

+0

你是什么意思“不在画布”? – Mia

回答

3

你所看到的不是一个动画GIF作为纹理。您链接的网站使用库来将GIF的每个单独框架渲染为纹理,然后通过更改纹理图像的偏移来循环显示它们。

查看TextureAnimation链接的来源并查看第157行。这是执行此操作的对象。你可以看到正在运行的动画是不是一个GIF都:

http://stemkoski.github.io/Three.js/images/run.png

-1

它的实际工作看GIF动画与弃用THREE.ImageUtils.loadTexture ...

var materialTextured = new MeshBasicMaterial({ 
    map: THREE.ImageUtils.loadTexture('mygif.gif'); 
}); 

然后在render()上,您可以调用

materialTextured.map.needsUpdate = true; 
+0

感谢您分享您的经验,但是,我使用了它,并没有发生动画。也许你可以提供更多的细节。 – Halt

+0

相同,它没有回应 –