При использовании VTK версии 5.1 у меня возникают проблемы с некоторыми моделями, которые не отображаются правильно в OpenGL.
Процесс загрузки моделей в VTK несколько обходной, но он довольно прост и прост. Каждая модель представляет собой коллекторную сетку, состоящую только из четырехугольников и трис.
Модели Blender-> пользовательский формат экспорта, содержащий точки, нормали точек и многоугольники
Пользовательский формат экспорта-> Пользовательский синтаксический анализатор C ++-> vtkPolyData
vtkPolydata-> vtkTriangleFilter-> vtkStripper-> vtkPolyDataNormals-> конечный продукт
Поскольку наш конечный продукт показывал нерегулярные и отсутствующие нормали при его рендеринге, я заставил VTK записать объект в текстовый файл, который я затем проанализировал обратно в Blender, используя python.
Первоначальные результаты состояли в том, что сетка была правильной и соответствовала исходной модели, однако, когда я использовал опцию Blender «выбрать не-многообразие», около 15% модели показали, что она не многообразна. Немного посмотрев по интернету, предложили «удалить двойники» как решение, которое фактически решило вопрос о закрытии сетки, но нормали все еще были нерегулярными.
Итак, я надеюсь, что есть некоторые дополнительные опции / функции / фильтры, которые я могу использовать для обеспечения правильного чтения и / или обработки моделей через фильтры.
Это было решено с помощью запроса, чтобы Blender выполнил триангуляцию сетки перед операцией экспорта.
Из-за искажения Блендер выполнял неявную триангуляцию четырехугольников, в результате чего грани были сохранены как 4 некомпланарные точки. За счет форсирования явной триангуляции я смог успешно выполнить экспорт и поддерживать целостность / многообразие модели. Происходящие дыры были вызваны тем, что экспортер не копировал неявную триангуляцию, что приводило к потере данных.
Других решений пока нет …