three.js OBJMTLLoader

以前調べた時と OBJMTLLoader の扱いが異なっているので,
 サンプルの該当部分を抽出.


r58
 var loader = new THREE.OBJMTLLoader();
 loader.addEventListener( ‘load’, function ( event ) {
  var object = event.content;
  object.position.y = – 80;
  scene.add( object );
  });
 loader.load( ‘obj/male02/male02.obj’, ‘obj/male02/male02_dds.mtl’ );


r66
 var loader = new THREE.OBJMTLLoader();
 loader.load( ‘obj/male02/male02.obj’, ‘obj/male02/male02_dds.mtl’, function ( object ) {
  object.position.y = – 80;
  scene.add( object );
  } );


r84
 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 ) { };
 THREE.Loader.Handlers.add( /\.dds$/i, new THREE.DDSLoader() );
 var mtlLoader = new THREE.MTLLoader();
 mtlLoader.setPath( ‘obj/male02/’ );
 mtlLoader.load( ‘male02_dds.mtl’, function( materials ) {
  materials.preload();
  var objLoader = new THREE.OBJLoader();
  objLoader.setMaterials( materials );
  objLoader.setPath( ‘obj/male02/’ );
  objLoader.load( ‘male02.obj’, function ( object ) {
   object.position.y = – 95;
   scene.add( object );
   }, onProgress, onError );
  });


r74 から変更されていて,OBJMTLLoader が削除されたらしい.
https://github.com/mrdoob/three.js/releases?after=r75
Improved OBJLoader and MTLLoader and made OBJMTLLoader obsolete.
それで参考にさせてもらったのがここ
http://stackoverflow.com/questions/35380403/how-to-use-objloader-and-mtlloader-in-three-js-r74-and-later


他にも,OBJLoader のデータのチェックが厳しくなったみたいで,
r84 OBJLoader.js 632 行目で
 throw new Error( "Unexpected line: '" + line + "'" );


クラスによっては前からみたいだが,position が readonly .
position のメンバに対して代入すれば OK .


  にほんブログ村 IT技術ブログへ



コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください