最新版本threejs圆柱体不出现

来源:14-6 实战:实现骨骼动画

weixin_慕勒7038746

2023-11-25

图片描述
若使用老师代码拉满的版本可以正常显示
但用了最新版本也就是 0.158.0版本 就无法显示了

写回答

2回答

qq_洌_0

2023-12-28

新版本需要加权重和索引,否则会报错,报错内容

Uncaught TypeError: Cannot read properties of undefined (reading 'getX')

插入以下代码试试?

const index = [] // 索引

  const weight = [] // 权重


  const arr = geometry.attributes.position.array;

  for (let i = 0; i < arr.length; i += 3) {

    const y = arr[i + 1] + 20


    // const index = Math.floor(y / 10);

    const weightValue = (y % 10) / 10


    index.push(Math.floor(y / 10), Math.floor(y / 10) + 1, 0, 0)

    weight.push(1 - weightValue, weightValue, 0, 0);

  }

  geometry.setAttribute('skinIndex', new THREE.Uint16BufferAttribute(index, 4));

  geometry.setAttribute('skinWeight', new THREE.Float32BufferAttribute(weight, 4));


0
0

yancy

2023-11-27

看着没啥问题,程序有报错吗?

0
0

WebGL+Three.js 入门与实战,系统学习 Web3D 技术

前端的技术蓝海,涨薪好选择

1081 学习 · 294 问题

查看课程