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

时间:2016-03-25 11:33:54

标签: javascript model three.js textures

我正在使用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模型?

非常感谢你!

1 个答案:

答案 0 :(得分:1)

嘿,错误似乎顶点与文件不在一起。 OBJ文件是带

的简单原始文件

v :::: vertex

vt ::::纹理坐标

vn ::::正常

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

尝试将您的obj导入到blender中,然后使用三角形面导出,如下所示: enter image description here

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

0/1/2/3 3/2/4/0 ....等等 在三角测量之后,他们看起来像:

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

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