私はThree JSの初心者ですが、その基本は知っています。
現在、ThreeJS の MTL と OBJLoader を使用したコードで次の問題が発生しています。オブジェクト自体は完全に読み込まれ、シーンにレンダリングされます。ただし、問題はオブジェクトがシーンに追加された後です。次のエラーが発生します。
TypeError: k.ambientLightColor is undefined, three.min.js (line 136, col 35)
TypeError: m.ambientLightColor is undefined, three.min.js (line 139, col 22)
そして、シーンにカーソルを合わせるたびに新しいエラーが発生します。
基本的に、これによりアプリケーション全体がフリーズし、アプリケーションの実行中にシーンに新しいオブジェクトを追加できなくなります。これは、アプリケーションで実行できるはずです。
私の OBJ+MTLLoader は次のようになります。
var mtlLoader = new THREE.MTLLoader();
mtlLoader.setPath('objects/buildings/');
mtlLoader.load('Greenbuilding.mtl', function(materials) {
materials.preload();
var objLoader = new THREE.OBJLoader();
objLoader.setMaterials(materials);
objLoader.setPath('objects/buildings/');
objLoader.load('Greenbuilding.obj', function(object) {
object.position.set(0,0,0);
objects.push(object);
scene.add(object);
}, onProgress, onError);
});
私は OBJLoader のみを使用しようとしましたが、問題は発生しませんでした。これは、MTLLoader の使用時に何か問題があるという私の疑問を裏付けています。