Three.js 应用纹理后 3D 模型消失
Three.js 3D model disappears after applying texture
我已经通过 obj 文件成功导入了 3D 模型。它在屏幕上显示正常。但是当我尝试应用纹理时,模型消失了。有什么想法吗?
var texture = new THREE.Texture();
var loader = new THREE.ImageLoader( manager );
loader.load( './models/Leather-Black.jpg', function ( image ) {
texture.image = image;
} );
loader.load( './models/Sofa000.obj', function ( object ) {
object.traverse( function( node ) { if ( node instanceof THREE.Mesh ) {
node.castShadow = true;
node.material.map = texture;
}
});
object.scale.set(30,20,30);
object.rotation.y = Math.PI/180 * 180;
scene.add( object );
});
loader.load()
是异步的。因此,当您分配给 material.map
时,您的 texture
变量是 undefined
。你需要做的是使用 TextureLoader()
的回调函数,这样你就会知道图像已经加载,然后将它应用到 material.
我已经通过 obj 文件成功导入了 3D 模型。它在屏幕上显示正常。但是当我尝试应用纹理时,模型消失了。有什么想法吗?
var texture = new THREE.Texture();
var loader = new THREE.ImageLoader( manager );
loader.load( './models/Leather-Black.jpg', function ( image ) {
texture.image = image;
} );
loader.load( './models/Sofa000.obj', function ( object ) {
object.traverse( function( node ) { if ( node instanceof THREE.Mesh ) {
node.castShadow = true;
node.material.map = texture;
}
});
object.scale.set(30,20,30);
object.rotation.y = Math.PI/180 * 180;
scene.add( object );
});
loader.load()
是异步的。因此,当您分配给 material.map
时,您的 texture
变量是 undefined
。你需要做的是使用 TextureLoader()
的回调函数,这样你就会知道图像已经加载,然后将它应用到 material.