Я некоторое время боролся с проблемой в Maya, и я не могу найти решение на этом сайте или вне его. Я сделал учетную запись, чтобы я мог задать прямой вопрос сообществу и надеяться получить ответ.re-ordering polygon face index in maya
Таким образом, проблема заключается в следующем: В процессе моделирования индекс лица (например, obj.f [0]), как само собой разумеется. Мне нужно повторно упорядочить этот индекс лица с указанной начальной точки пользователя. Это должно помещать лица в список выбора. (Maya поставит список на основе номера face_index, чего мы не хотим) Чтобы уточнить, индекс лица не нужно менять самостоятельно. Это просто нужно войти в список должным образом.
Что я сделал до сих пор: Я смог написать код, который сделает выбор для полосы полигонов. Выбранное лицо преобразуется в список ребер, а Maya ищет лица, которые имеют один и тот же край, и добавляет их в новый список по порядку. Это легко работает в полосе, потому что для соседнего лица используется только один край. Псевдо-код:
select geo
select start face and make new_list
converts geo_sel into list
for geo_sel_face in geo_sel:
convert to edge
for new_list_face in new_list:
convert to edge
if edge in geo_sel_face in new_list_face:
ordered_list.append(geo_sel_face)
Что-то в этом роде. Конечно, код полностью ломается при работе с полной поверхностью, такой как плоскость, так как по крайней мере два ребра разделяются с другими гранями.
Что это для: Я написал сценарий, чтобы в основном травить траву (или любой другой тип геометрии) на поверхность. Оригинальный сценарий ищет лицевые центры и растения травы, или что у вас на лицевом центре. Это также сдерживает ориентацию на нормали. Однако индексирование смешано, и выполнение дополнительной работы, требующей правильного индекса, становится невозможным. Это очень помогло бы в управлении данными, если бы этот список был читаемым человеком, а не машиносчитываемым, поэтому я ищу способ сделать это.
И последнее: Я попытался найти решение, но, по-видимому, его не найдено для полной поверхности. Возможно, мне нужно подумать об этом под другим углом, и глубоко признателен за любую помощь или вдохновение со стороны сообщества.
Благодарим вас за внимание!
Итак, вам нужно сопоставить один набор граней по порядку и новый, который не является одним и тем же индексом, но выглядит идентичным?Или вы хотите упорядочить список лиц каким-то детерминированным способом? – theodox
Привет, спасибо, за ваш ответ! Последний, упорядочивая список лиц детерминированным способом. Представьте себе самолет 3x3. Часто после моделирования индекс лица начинает перебираться вверх. Я хотел бы переупорядочить его так, чтобы, например, плоскость.face [0] начиналась в верхнем левом углу, а затем вертикально по плоскости [1] и т. Д. Я могу либо разделить все лица и рекомбинировать, либо использовать MFnMesh :: createInPlace, чтобы сделать что-то похожее. Но в любом случае мне потребуется какой-то ручной выбор. Это не большое дело для небольших чисел, но когда у сцены сотни, это орехи. – XJZeng