gpt4 book ai didi

javascript - Three.js - 导入带有纹理的 3d 对象

转载 作者:行者123 更新时间:2023-11-30 07:26:03 27 4
gpt4 key购买 nike

我有一个从 3ds max 导出的 .obj 文件和一个包含 Material 的 .mtl 文件。我想用 three.js 渲染这个对象,但它似乎没有加载纹理。这是我的 javascript 代码

var texture = THREE.ImageUtils.loadTexture( 'items/m16/m16.jpg' );


var loader = new THREE.OBJLoader();
loader.load( "items/m16/m16.obj", function ( object ) {

for ( var i = 0, l = object.children.length; i < l; i ++ ) {

object.children[ i ].material.map = texture;

}

// object.position.y = -100;

scene.add( object );

} );

这是 .mtl 文件的上下文

newmtl Material__25
Ns 10.0000
Ni 1.5000
d 1.0000
Tr 0.0000
Tf 1.0000 1.0000 1.0000
illum 2
Ka 0.5880 0.5880 0.5880
Kd 0.5880 0.5880 0.5880
Ks 0.0000 0.0000 0.0000
Ke 0.0000 0.0000 0.0000
map_Ka m16.jpg
map_Kd m16.jpg

我看不出我哪里错了。

最佳答案

由于您有一个 .mtl 文件,您应该改用 OBJMTLLoader。这样您发布的所有代码将变为:

var loader = new THREE.OBJMTLLoader();
loader.load( "items/m16/m16.obj", function ( object ) { scene.add( object ); } );

关于javascript - Three.js - 导入带有纹理的 3d 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14798005/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com