Алгоритм трехмерной триангуляции - PullRequest
4 голосов
/ 29 июня 2010

Кто-нибудь знает, какой алгоритм триангуляции использует Maya?Не имея этого, какие наиболее вероятные алгоритмы можно попробовать?Я попробовал несколько простых на макушке головы (самые короткие / самые длинные результирующие края, наименьший минимальный угол, наименьшая / самая большая площадь), но они были ошибочными.Является ли Делоне самым правдоподобным алгоритмом?

Редактировать: Кстати, псевдокод о том, как реализовать Делоне для двумерного квадрата в трехмерном пространстве для генерации двух треугольников, более чем приветствуется!

Редактировать 2: К сожалению, это не является ответом в 3D-пространстве (применимо только в 2D).

Ответы [ 4 ]

2 голосов
/ 29 июня 2010

Я не люблю догадываться о намерениях людей, но если вы просто пытаетесь выбраться из майя, что показано в окне просмотра, вы можете извлечь триангуляцию майя, начиная с MItMeshPolygon::getTriangles.

(Соответствующие нормали и цвета вершин легко доступны. Ультрафиолетовые лучи требуют немного больше усилий - я не помню деталей (весь мой код Maya у моего бывшего работодателя), но на первый взгляд может показаться, что вы у меня нет данных, на самом деле это все там, просто не удобно.)

(Еще одно замечание - если ваши художники стараются изо всех сил, они могут создавать полигоны, которые разбивают Maya при вызове getTriangles, даже если они отображаются нормально и могут управляться с помощью пользовательского интерфейса. Это случалось каждые несколько месяцев так что стоит иметь в виду, но, вероятно, не стоит слишком беспокоиться.)

Если вы не хотите использовать API или Python, то после выполнения polyTriangulate перед экспортом, затем undo (чтобы вернуть исходные полигоны) позволит вам изучить триангулированную сетку. (Возможно, вы захотите или должны сохранить сцену во временном файле, затем перезагрузить ее и использовать file, чтобы вернуть ей старое имя, если ваш процесс экспорта делает вещи, которые трудно или невозможно отменить.)

Это немного глупо, но вы гарантированно получите точную триангуляцию, которую использует Майя. Гораздо проще, чем писать собственный код триангуляции, и почти наверняка НАМНОГО проще, чем пытаться понять, что Майя делает внутри ...

1 голос
/ 30 июня 2010

Джонатан Шевчук имеет очень популярный инструмент 2D-триангуляции под названием Triangle, и скоро должна появиться 3D-версия. У него также есть ряд статей на эту тему, которые могут быть полезны.

1 голос
/ 29 июня 2010

Вы можете попробовать посмотреть Методы Вороного и Делоне Генрика Циммера. Я не знаю, использует ли это Майя, но в статье описываются некоторые общие приемы.

0 голосов
/ 29 июня 2010

Здесь вы можете найти апплет, который демонстрирует алгоритмы инкрементной, подарочной упаковки, разделения и завоевания и QuickHull, вычисляющие триангуляцию Делоне в 3D. Указатели на каждый алгоритм предоставляются.

...