Pull to refresh

Comments 9

Спасибо за статью. Я правильно понимаю, что это достаточно низкоуровневая библиотека, в первую очередь предназначенная для прямой манипуляции вершинами, полигонами, ребрами и не содержит каких либо реализаций типичных для 3 редакторов алгоритмов, типа там extrude, subdivide, boolean и т.д.? В каких задачах применяете(планируете применять) эту библиотеку?
Да, вы правы. OpenMesh предоставляет API для прямой манипуляции вершинами, полигонами, ребрами. Я считаб, что библиотеку удобно использовать для низкоуровневой манипуляции с 3D моделями. Я например ее использовал в задаче интерполяции текстуры, где необходим доступ к UV координатам вершин. Также ее можно использовать для закрытия отверстий (gap closing), хотя эту задачу хорошо решает MeshLab.
прочитал. не понял зачем эта библиотека вообще. она отображать умеет? если нет, то значит надо какой то блендер и открывать им. но есть проблема — в блендере есть свой пайтон и свои инструменты для создания меша… так зачем внешняя библиотека? даже если умеет отображать — то зачем вообще это надо если в любом 3D софте есть тоже самое, а еще куча всего дополнительного что вам потребуется.

можете раскрыть вопрос шире, а то я вижу инструмент которому нет места в пайплайне работы с любым 3D…
Я в свое время искал библиотеки для работы с 3D на C++ для написания плагина к одному редактору, рассматривал разные варианты, но, как это часто бывает, стал писать свой велосипед. Пока искал и писал, понял, что, архитектура взаимосвязей элементов и формат хранения полигональных сеток очень не простой вопрос, и удачно спроектированная библиотека — это очень не мало. Это, по сути, ядро, определяющее, будут ли созданные на его основе алгоритмы летать, или будут адово тормозить и глючить на ляме поликов.
Да, когда пишешь плагин к какому либо 3D редактору, как правило, работаешь с теми форматами и функциями, которые предоставили разработчики этого редактора. Ну а если это плагин скульптинга, или процедурной генерации геометрии с анимируемыми параметрами, или еще что-то специфическое, то предоставленных возможностей может не хватить. Или в рамках своего проекта, возникает специфическая задача какого-нибудь ремешинга отсканированного мобилой 3д объекта, то тогда на помощь и приходят такие библиотеки. Конечно много нужно будет пописать ручками, но пока не везде можно просто взять и использовать Блендер. )
Я тоже искал библиотеки для работы с моделями OBJ в C++, но с ними было много проблем с зависимостями при компиляции. Был приятно удивлен, когда встретил обертку OpenMesh в Python. Среди альтернатив, таких как tinyobjloader и obj, OpenMesh предоставляет наибольший набор необходимых операций.

Я тоже искал. Перестал искать.
Парни пилят Sverchok


Sverchok

Sverchok is a parametric CAD tool for Blender built to help generate complex 3d shapes using a node system to control the flow of math and geometry. It is ideally suited to Architects and Designers, but anyone with highschool Math and Trigonometry will be able to produce results that are impossible to achieve unless you know text based programming languages such as Python or C.

Ребята большие молодцы, нодовые системы моделирования — это гибко и мощно, правда, на мой, вкус типичные реализации страдают резким ростом сложности визуального восприятия при возрастании сложности модели. Я приверженец подхода выбранного в Гудини (меньше линий между параметрами).

По той же логике, не нужна библиотека pillow для работы с изображениями. Показывать их не умеет, и весь функционал и даже больше есть в графических редакторах.

Удобно. Скостромил простенький скрипт и фигачишь модельку в консоли без этих всех сотен менюшек. Спасибо!
Sign up to leave a comment.

Articles