2015-05-28 3 views
0

Я использовал код примера на странице документации three.js для загрузки файла .obj с .mtl, и он продолжает давать мне ошибку, не может прочитать свойство «vertexNormals» неопределенного.не может прочитать свойство 'vertexNormals' of undefined

Код выглядит следующим образом:

// instantiate a loader 
var loader = new THREE.OBJMTLLoader(); 

// load an obj/mtl resource pair 
loader.load(
    // OBJ resource URL 
    'models/farmhouse.obj', 
    // MTL resource URL 
    'models/farmhouse.mtl', 
    // Function when both resources are loaded 
    function (object) { 
    scene.add(object); 
    }, 
    // Function called when downloads progress 
    function (xhr) { 
    console.log((xhr.loaded/xhr.total * 100) + '% loaded'); 
    }, 
    // Function called when downloads error 
    function (xhr) { 
    console.log('An error happened'); 
    } 
); 
+0

Отследите его с помощью отладчика и определите местоположение ошибки. Вы не предоставляете достаточную информацию для тех, кто поможет вам. – WestLangley

+0

Я потратил много времени на отслеживание с помощью отладчиков. В конце концов нашел решение, но я попытался найти наименьший объем кода, который ввел ошибку для публикации. На самом деле этот точный код, создающий эту ошибку, означает, что существует более старая сборка three.js, и ее необходимо обновить, что, надеюсь, будет полезно для кого-то в будущем. –

ответ

0

Эта ошибка, по-видимому в результате использования объекта загрузчика Three.js MTL с более старой версией three.js сборки. Проблема заключалась в том, что источник three.js из пакета, который я использовал, не был совместим с более новыми загрузчиками, которые я использовал из документации.

Решение состоит в том, чтобы добавить новую сборку three.js вместо сборки пакета three.js. (что привело к другим регрессиям для работы). Если вы видите эту точную ошибку при загрузке модели в сцену, сборка three.js, скорее всего, устарела.

Смежные вопросы