Про копирование нормального с одного меня sh на другое меня sh с помощью maxscript - PullRequest
0 голосов
/ 16 июня 2020

Есть сетки, закрытые друг к другу. Мне нужно скопировать нормаль от одного меня sh к другому мне sh с помощью maxscript. Целевые вершины - это те точки, которые находятся в одном положении. Но результат странный, даже значение нормальное такое же, в сторону нет. Я пробовал некоторые методы, чтобы получить / установить нормальный, в coordsys world / local / parent .. Но это бессмысленно. Как мне получить правильный результат?

Ответы [ 2 ]

1 голос
/ 17 июня 2020

Два меня sh должны выполнить "reset xform" ... Или мы можем преобразовать нормаль A в world, чтобы получить worldNormal. А затем преобразовать worldNormal в локальное пространство B, чтобы получить normalB ...

0 голосов
/ 16 июня 2020

Вероятно, вы захотите попробовать использовать модификатор Edit_Normal, чтобы указать явные нормали. https://help.autodesk.com/view/3DSMAX/2020/ENU/?guid=GUID-9F33B780-7A98-4638-BD00-A1725FA1DB70

Согласно этой документации, если вы используете setFaceNormal для нормальной настройки непосредственно на вашем me sh,

Как только вы запустите update ( ) на me sh, это значение перезаписывается.

https://help.autodesk.com/view/3DSMAX/2020/ENU/?guid=GUID-58D1F8B6-0012-4727-AA29-B2C79EA46E16

Однако, похоже, это не работает так же для нормалей вершин , этого может быть достаточно для вас?

Начиная с 3ds Max 2015, установка нормали вершины устанавливает нормаль как явную, поэтому она сохранит свое значение при обновлении me sh. В версиях, предшествующих 3ds Max 2015, установка нормали вершины с помощью MAXScript имела лишь очень непродолжительный эффект, потому что данные могли быть легко перезаписаны неявным пересчетом нормалей на основе группы сглаживания при перерисовке окна просмотра или рендеринге сцены.

https://help.autodesk.com/view/3DSMAX/2020/ENU/?guid=GUID-BD473113-389F-4C96-BE07-217FF75796EF

...