,需要将 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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录