Three.js使用VertexColors参数提示无对应导出的报错问题
报错原因
你遇到的报错是Three.js版本迭代API废弃导致的:从r125版本开始,官方就移除了VertexColors这个导出常量,你当前使用的是较新的Three.js版本,模块里根本不存在这个导出项,自然会抛出找不到对应导出的语法错误。
旧版本Three.js中材质的vertexColors属性需要传入枚举常量(NoColors/VertexColors/FaceColors)来控制顶点色模式,这套API在后续版本迭代中被简化废弃,不再使用常量传值。
顶点色效果正确实现方式
只需要修改两处代码即可,其余顶点色数据写入的逻辑不需要调整:
- 删掉顶部import导入块中对
VertexColors的引入项,不需要再导入这个不存在的常量。 - 修改
PointsMaterial初始化配置中的vertexColors字段,直接传入布尔值true即可开启顶点色渲染,修改后的材质代码如下:
const pointMaterial = new PointsMaterial({ size: 0.1, map : circleTexture, alphaTest: 0.01, transparent: true, vertexColors : true, });
修改完成后保存刷新,你之前写的随机顶点色数据就会正常生效,渲染出彩色的粒子点效果。
注意:r150之后的Three.js版本已经完全删除了旧顶点色常量的所有兼容逻辑,只要代码中存在对
VertexColors的引用就会直接抛出运行时错误,没有降级兼容方案。
内容的提问来源于stack exchange,提问作者tsukingo
相关产品推荐
相关产品推荐

