Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript THREE.js在加载时更改纹理_Javascript_Three.js_Textures - Fatal编程技术网

Javascript THREE.js在加载时更改纹理

Javascript THREE.js在加载时更改纹理,javascript,three.js,textures,Javascript,Three.js,Textures,我们正在加载在Blender中创建的对象,我们希望更改纹理,而不必更改加载对象时引用的.mtl文件 //load in all pieces var board = this; var loadComplete = 0; this.loader.load('myobj1.obj', 'myobj1.mtl', function (object){ board.obj2 = object; board.loader.load('myobj2.obj', 'myobj2.mtl',

我们正在加载在Blender中创建的对象,我们希望更改纹理,而不必更改加载对象时引用的.mtl文件

//load in all pieces
var board = this;
var loadComplete = 0;
this.loader.load('myobj1.obj', 'myobj1.mtl', function (object){
    board.obj2 = object;
    board.loader.load('myobj2.obj', 'myobj2.mtl', function(object){
        board.obj2 = object;
        board.obj2.material = new THREE.ImageUtils.loadTexture( 'Models/textures/blackmarble1.jpg' );
        board.loader.load('myobj3.obj', 'myobj3.mtl', function(object){
            board.obj3 = object;
    });
 });
});
所以在这张卡片中,我们试图改变obj2的纹理。但是,它只加载mtl中的任何内容。这是我们在某些场景中需要的,但在其他场景中不需要

同样,尝试这些方法也不会产生任何效果:

var blackTex = THREE.ImageUtils.loadTexture('Models/textures/blackmarble1.jpg');
obj2.material = new THREE.MeshLambertMaterial({ map: blackTex});


obj2.material.uniforms.texture = blackTex;

我明白了。加载程序对网格进行子对象化

piece.children[0].children[0].material = new THREE.MeshLambertMaterial({ map: blackTex});