如何为 Three.js 中的 .obj 模型添加颜色?

How can I add colour to a .obj model in Three.js?

我正在用 Three.js 创建一个 WebGL 场景,我遇到了下一个问题:我正在尝试用 Three.js 加载一个 .obj 模型,我想添加一种颜色(蓝色,例如)到那个 .obj 模型,而不是 mtl 纹理。我尝试这样做:

// instantiate a loader
var loader = new THREE.OBJLoader();

// load a resource
loader.load(
    // resource URL
    'model_path.obj',
    // Function when resource is loaded
    function ( object ) {
        scene.add( object );
    }
);

但我遇到下一个错误:

WebGL: INVALID_VALUE: bufferData: no data
Uncaught TypeError: Cannot read property 'length' of undefined
[.CommandBufferContext]GL ERROR :GL_INVALID_VALUE : glVertexAttribPointer: size GL_INVALID_VALUE

如何更正错误,以加载蓝色的 obj 模型?

非常感谢!

嘿,错误似乎是文件中没有顶点。 OBJ 文件是

的简单原始文件

v :::: 顶点

vt ::: 纹理坐标

vn ::: 正常

usemtl ::: 定义纹理,ka(环境),ks(镜面反射)和 kd(扩散)

尝试将您的对象导入搅拌机,然后像这样导出三角面:

实际上,如果您不这样做,索引将以 face4 格式显示给您,例如:

0/1/2/3 3/2/4/0 ....等等 经过三角测量后,它们看起来像:

0/1/2 3/2/0 ...

因此,当您更正 *.obj 时,您可以在三个解析器中加载文件并将 material 添加到子项中。