Blender Wavefront Object: количество вершин в объявлении грани больше, чем количество всех вершин

Я пытаюсь загрузить объект Wavefront в мою C++ программу OpenGL, используя мой собственный анализатор. Парсер работает для некоторых.obj-файлов, но в некоторых файлах он выдает index out of range exception, После некоторой отладки я обнаружил, что одна строка в файле ссылается на вершину с номером 10565:

f 2571/5164/4481 8298/5166/4481 10565/5167/4481
                                ^^^^^

Но файл содержит только 10531 Вершины.

Вопросы:

  • Как Blender все еще может импортировать файл?
  • К какой вершине относится Blender с "10565", даже если он не существует?

2 ответа

Решение

Решение:

Я должен был удалить вершины, которые были дважды.

Лучший ответ будет в источнике -

svn co "https://svn.blender.org/svnroot/bf-extensions/trunk/py/scripts/addons/io_scene_obj/"

Мое предположение было бы игнорировать ошибочные грани, другой вариант - найти ближайшую вершину, которая, скорее всего, будет связана с двумя другими вершинами.

Другие вопросы по тегам