You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何出现'vertexColors'参数未定义?Three.js代码疑问

问题原因及解决办法

报错原因

出现'vertexColors' parameter is undefined的核心原因是Three.js版本迭代导致顶点颜色枚举值的命名空间变更:

  • 在r151及更早的版本中,启用顶点颜色的枚举值是THREE.VertexColors,直接挂载在全局THREE对象下;
  • 从r152版本开始,Three.js将颜色模式相关的枚举统一迁移到THREE.ColorMode命名空间下,原全局的THREE.VertexColors被移除,直接引用就会触发undefined报错。

另外还有一种可能:部分版本的LineBasicMaterial支持直接用布尔值true启用顶点颜色,错误传枚举值反而会导致参数不识别。

解决办法

根据你的Three.js版本选择对应方案:

  • 新版本(r152+):使用THREE.ColorMode.VertexColors替代原枚举值
    const material = new THREE.LineBasicMaterial({
      vertexColors: THREE.ColorMode.VertexColors, 
      transparent: true, 
      side: THREE.DoubleSide,
    })
    
  • 通用兼容方案:直接传入布尔值true(几乎适配所有支持vertexColors参数的版本)
    const material = new THREE.LineBasicMaterial({
      vertexColors: true, 
      transparent: true, 
      side: THREE.DoubleSide,
    })
    

内容的提问来源于stack exchange,提问作者我犟不过你

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 05:33:17