Render.ru

получение номера вершины по координатам

Erik_945

Знаток
Рейтинг
36
#1
Требуется получить номера всех вершин поли-объекта, расположенных в заданной области пространства (для простоты сфера, с известным центром и радиусом).
Конечно, можно перебирать все вершины меша и высчитывать их дистанцию до заданной точки, а потом сравнивать с радиусом, но это долго - как и любой перебор.
Можно ли как-то сделать это быстрее? Как вообще нативное выделение по области работает?
 

igorznag

Мастер
Рейтинг
103
#2
Объясните подробнее. Для чего вам это нужно?
Можно временно использовать модификатор Volumeselect.
Для вас подходит такой вариант? Пример, в новой сцене запускаем скрипт:
Код:
p=plane length:100 width:100  lengthsegs:10 widthsegs:10
s=sphere radius:15 segs:50
addmodifier p (Volumeselect level:1 volume:3 Node:s)
actionMan.executeAction 0 "40472"  -- MAX Script: MAXScript Listener
clearlistener(); for v in p.selectedVerts do print v.index
 

Erik_945

Знаток
Рейтинг
36
#3
Есть два объекта схожей формы, но с разной нумерацией вершин. Эти вершины нужно соотнести, которая какой соответствует. Для некоторых вершин аналоги могут и не найтись.
 

igorznag

Мастер
Рейтинг
103
#4
Объясните полностью задачу.
Для чего вам нужно соотнести вершины двух объектов?
Вершины одного объекта будут анимированы и нужно перенести анимацию на вершины другого объекта?
Для этого можно использовать модификатор Skin Wrap.
Для вас подходит такой вариант?

 

Erik_945

Знаток
Рейтинг
36
#5
Нет, там идет морфирование одного объекта в другой, после применения нескольких модификаторов, в том числе добавления\удаления лупов и прочей чехарды с топологией. SkinWrap и скрипт Morphix не спасают.
 

igorznag

Мастер
Рейтинг
103
#6
Скрипт Morphix не работает, потому что объекты имеют разную топологию.
Объясните подробнее почему для вас не подходит модификатор Skin Wrap.
Предоставьте видео со звуком.
Посмотрите видео ниже и объясните в чем проблема использования модификатора Skin Wrap:

 
Сверху