创建GIF解码器var gifDecoder = new GIF; 加载gif图片var xhr = new XMLHttpRequest;xhropenGET pathtogif true;xhrresponseType = arraybuffer;xhronload = function 解码gif数据 gifDecoderdecodexhrresponse; 获取第一帧图像的数据
,需要将 THREE.NormalBlending 改为 THREE.NormalBlendingFactor。正确代码如下:
// 创建GIF解码器
var gifDecoder = new GIF();
// 加载gif图片
var xhr = new XMLHttpRequest();
xhr.open('GET', 'path/to/gif', true);
xhr.responseType = 'arraybuffer';
xhr.onload = function() {
// 解码gif数据
gifDecoder.decode(xhr.response);
// 获取第一帧图像的数据
var frame = gifDecoder.frameInfo(0);
// 将图像数据转换为纹理
var texture = new THREE.DataTexture(frame.data, frame.width, frame.height, THREE.RGBAFormat);
texture.needsUpdate = true;
// 创建材质
var material = new THREE.MeshBasicMaterial({
map: texture,
transparent: true,
blending: THREE.NormalBlendingFactor
});
// 创建网格
var geometry = new THREE.PlaneGeometry(1, 1);
var mesh = new THREE.Mesh(geometry, material);
scene.add(mesh);
};
xhr.send();
原文地址: https://www.cveoy.top/t/topic/bnLB 著作权归作者所有。请勿转载和采集!