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 blender将blender对象交换到threejs_Javascript_Three.js_Blender - Fatal编程技术网

Javascript blender将blender对象交换到threejs

Javascript blender将blender对象交换到threejs,javascript,three.js,blender,Javascript,Three.js,Blender,我对Blender和Blendswap是个新手。我从blendswap下载了一个.blender渲染,并想将其加载到我的threejs场景中。我将blender渲染导出为.obj,它下载了一个.obj文件和一个.mtl文件。然后我使用下面的代码尝试导入它。没有错误代码,但渲染未显示。我还想看看导入此对象以设置其位置后,什么命令是合适的。(x,y,z)我无法使用.position.set var santa; var manager = new THREE.LoadingManager(

我对Blender和Blendswap是个新手。我从blendswap下载了一个.blender渲染,并想将其加载到我的threejs场景中。我将blender渲染导出为.obj,它下载了一个.obj文件和一个.mtl文件。然后我使用下面的代码尝试导入它。没有错误代码,但渲染未显示。我还想看看导入此对象以设置其位置后,什么命令是合适的。(x,y,z)我无法使用.position.set

  var santa;

  var manager = new THREE.LoadingManager();
    manager.onProgress = function ( item, loaded, total ) {
        console.log( item, loaded, total );
    };
  var onProgress = function ( xhr ) {
    if ( xhr.lengthComputable ) {
      var percentComplete = xhr.loaded / xhr.total * 100;
      console.log( Math.round(percentComplete, 2) + '% downloaded' );
    }
  };
  var onError = function ( xhr ) {
    console.log('Error: ' + xhr)
    };

  var loader = new THREE.OBJLoader( manager );
    loader.load( 'img/santa blendswap.obj', function ( object ) {
      santa = object;
      scene.add( santa );
    }, onProgress, onError );

如果obj文件位于指定的路径中,则此代码应该可以工作,无论如何,您可以在加载对象后设置对象的位置

var santa;
var onProgress = function ( xhr ){
    if ( xhr.lengthComputable ) {
      var percentComplete = xhr.loaded / xhr.total * 100;
      console.log( Math.round(percentComplete, 2) + '% downloaded' );
    }
};
var onError = function ( xhr ) {
    console.log('Error: ' + xhr)
};
var loader = new THREE.OBJLoader();
//use %20 to encode space between the file name. 'img/santa blendswap.obj' should also work
loader.load( 'img/santa%20blendswap.obj', function ( object ) {
    santa = object;
    santa.position.set( 0, 5, 10 );//You can set the position like this or use object.position.set( 0, 5, 10 )
    scene.add( santa );
}, onProgress, onError );

为什么无法使用position.set?是否确定“img”文件夹中存在obj文件?还要确保“img”文件夹与html页面所在的路径相同。