gpt4 book ai didi

three.js - 在three.js中将 Material 分配给OBJLoader模型

转载 作者:行者123 更新时间:2023-12-03 20:15:04 25 4
gpt4 key购买 nike

我使用以下代码导入了OBJ模型:

var loader = new THREE.OBJLoader();
loader.addEventListener('load', function (geometry) {
object = geometry.content;
scene.add(object);
});
loader.load('ship.obj');

它可以正常工作,但是每当我尝试向其中添加 Material 时,它要么无效,要么模型消失。我以为我可以这样做:
var ship = new THREE.Mesh(object, material);

但这是行不通的。有谁知道这样做的方法,或者甚至可能吗?我也尝试过使用OBJMTLLoader,但这只会增加复杂性,同时仍然不允许我更改 Material 。

最佳答案

编辑:这个答案现在已经过时了。相反,请查看@mightypile的答案。

假设您已经正确定义了material,请尝试以下操作:

loader.addEventListener( 'load', function ( event ) {

var object = event.content;

object.traverse( function ( child ) {

if ( child instanceof THREE.Mesh ) {

child.material = material;

}

} );

scene.add( object );

});

关于three.js - 在three.js中将 Material 分配给OBJLoader模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16200082/

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