Threejs objmtllloader черная модель

Я новичок в ThreeJS, и я сделал этот пример, который показывает одну из наших моделей. http://petrie3dtesting.museums.ucl.ac.uk/3DFootCover/index.html

Я создал Petrie3Dviewer и на странице HTML создал объект просмотра, который принимает в качестве входных данных файлы .obj и .mtl. Как ни странно, объекты отображаются ЧЕРНЫМИ, а затем, когда я начинаю взаимодействовать, появляется текстура. Я пробовал все, что я думаю: разные браузеры, уменьшая текстуру, разные компьютеры, ничего, я все время получаю случайное поведение. Я пробовал в FIrefox, в основном в Chrome. Кажется, мне нужно принудительно выполнить рендеринг после загрузки файла obj, но OBJMTLLoader.js не предоставляет для него никаких событий.

Действительно большое спасибо за помощь. Лучший, ГК


person user3461708    schedule 25.03.2014    source источник


Ответы (1)


Вы должны вызвать this.DoRender в своей функции Animate для рендеринга кадра.

this.Animate = function() { 
    this.orbitControls.update();
    this.Animate();
    requestAnimationFrame(this.Animate.bind(this));
}

На данный момент вы вызываете функцию рендеринга только тогда, когда пользователь меняет перспективу с помощью OrbitControls. И поскольку ваша текстура загружается асинхронно, она не готова в первый раз при рендеринге кадра.

person shi    schedule 27.03.2014