如何为 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 添加到子项中。
我正在用 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 添加到子项中。