Render.ru

как развернуть симметричный обьект в оси?

ASK'R

Активный участник
Рейтинг
5
#1
обьект - голый меш (сбито всё). известно, что часть обьекта симметрична (элемент), найти плоскость симметрии и повернуть обьект так, чтобы она совпадала с любой из мировых и "поставить" - наибольшее измерение чтобы было по оси Z. читал http://forums.cgsociety.org/archive/index.php/t-412428.html, попробовал обьект линковать к кубику и потом кубик по вращению в нули загонять, отлинковывать и убивать кубик - иногда работает, но только _иногда_.
хотя бы повернуть в минимальные (или максимальные?) измерения по мировым осям - думаю уже неплохо будет.
с тем с какой частью модели оперировать сам уже смогу найти.
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#2
Автоматически найти плоскость симметрии далеко не тривиальная задача, тем более что решений может быть далеко не одно.
Легче будет задать ее выделив допустим две симметричных точки.

Допустим мы вычислили плоскость симметрии,это нам даст только одну ось объекта для
правильного позиционирования и расчета того-же BBox нужно знать по крайне мере две оси.
Как ты собираешься задать вторую ось ?

PS
В приведенной тобой ссылке строится BBox с осью Z направленной к самой дальней точке от центра
ось Х же берется от балды т.е. как кросспродукт z и Up, что приведет к не предсказуемому результату.
Ошибки этого алгоритма можно проверить на параллелепипеде, как не сложно догадаться у такого объекта максимальное расстояние будет меду точками по диагонали, что и будет являться осью Z для bboxa.
Не думаю что он здесь подойдет.


 

megavitus

Активный участник
Рейтинг
7
#3
Писал скрипт, для нахождения бокса минимального объёма по выделеному:
http://3dcenter.ru/forum/index.php?showtopic=64665&st=15
Его можно пользовать в данном случае.Почти у любого обжа, найдутся опорные подобъекты такие, что построится правильный bbox. Потом линкуем обж к боксу и обнуляем у бокса ротацию.
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#4
Да это уже интересно, хотя без ручной коррекции все равно не обойдется
 

ASK'R

Активный участник
Рейтинг
5
#5
2Savin Denis
насчет наличия нескольких плоскостей симметрии в курсе (та же тушка чайника), уже успел проматерится, поис даже голый матаппарат, не то что реализацию на каком либо языке не доет толком ;( спасибо за пояснение происходящего ;)

2megavitus
попробую, если что-то непонятно будет, то здесь отпишу
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#6
Алгоритм можно придумать если стоит задача именно разработать алгоритм как прикладной так и основанный на мат анализе, но если нужно решать задачу то по опыту быстрей и точней будет просто указать нужные элементы, поскольку на сложных объектах алгоритмы все равно будут давать погрешность. Но тут все зависит от самих объектов и от требуемой точности.
 

ASK'R

Активный участник
Рейтинг
5
#7
2Savin Denis
сам я сляпывал скрипт, что по нескольким точкам выравнивает, но это оказалось неудобно - много возни, проще вручную развернуть, вариант megavitus'a значительно удобнее

2megavitus
отлично! я балдею, буду читать теорию, а скрипт чуть правленный уже применяют. огромное спасибо!
 
Сверху