2013-07-24 3 views
3

Я пытался визуализировать простую 3D-модель цилиндра в браузере, импортировав OBJ-файл в three.js. Я начал с работы простой пример из OBJ загрузчика three.js'S:Загрузка OBJ-файла в three.js

https://github.com/mrdoob/three.js/blob/master/examples/webgl_loader_obj.html

, который отлично работает локально.

Я попытался просто заменить путь OBJ-файла моим, но он не смог загрузить. Я дважды проверяю Путь, и это правильно.

При проверке ошибок на консоли на Firefox (Ctrl + Shift + K), он говорит: Syntax Error и бросает следующее сообщение об ошибке:

[22:59:30.865] Error: WebGL: DrawElements: bound vertex attribute buffers do not have sufficient size for given indices from the bound element array @ http://localhost/~harmanpreet/three.js/build/three.min.js:455 

Файл OBJ преобразуется из модели, выполненные в BRL-CAD (.g преобразование .obj). Ссылка на файл OBJ: http://devplace.in/~harman/cyl1_bot_dump.obj

Может кто-нибудь выяснить, в чем проблема?

Спасибо

+0

Ваш .obj загрузок для меня с three.js v56. Какую версию вы используете? –

+0

Я использую ревизию: 59. Теперь она работает после того, как я упростил приведенный выше пример загрузчика OBJ 3js. Я просто сохранил только загрузку файла с соответствующим блоком кода, чтобы попасть в проблему и как-то это сработало. Раньше я пытался просто заменить путь OBJ-файла в примере на мой, и это не сработало. – harman052

+0

Hi harman052, ссылка на файл OBJ мертва. Вы нашли решение или можете предоставить дополнительную информацию. – bummi

ответ

0

Вашего файл .obj выглядит правильно согласно спецификации, но я бы посоветовал вам использовать не-уменьшенный Three.js версии, а затем посмотреть на коде, окружающее сообщение об ошибке.

Также вы можете попробовать заменить «g» в файле obj в начале с помощью «o» (g = group, o = object). Я не уверен, как три. Js обрабатывают это внутренне или если это имеет значение, но я думаю, это не помешает попробовать.

Кроме того, ошибка, похоже, говорит о том, что «я столкнулся с индексом массива, который находится за пределами границ», то есть лицо (f в файле .obj) использует индекс, который выше, чем самый высокий определенный индекс , но это не похоже на ваш файл (индексы .obj начинаются с 1, поэтому все должно быть хорошо).

+0

Без изменений после перехода с «g» на «o» в OBJ-файл и от three.min.js до three.js в html-файле. :( – harman052

+0

Нельзя изменять, если вы измените значение с minified на non minified - но вы сможете проверить, что делает tr.js в его исходном коде, если вы используете неминифицированную версию (нет волшебства, это просто javascript). В этот момент вы, возможно, также можете посмотреть трассировку стека, которую вы должны получить в консоли, чтобы узнать, откуда возникла ошибка. – griffin

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