Полученная сцена сохранена как follicleConstraint.ma. Вы всегда можете открыть ее, как образец, и исследовать связи между объектами в Hypergraph.
Таким образом вы не должны ограничивать себя использованием только «легальных» нод, по их прямому назначению. Ведь MAYA - это конструктор, поэтому если какой-то объект или нода подходят для выполнения -не свойственных» им задач, смело используйте их в своих целях.
Примечание. Самые проницательные умы конечно же, обнаружат в тайниках МAYA вяло документированные ноды furPointOnMeshlnfo и furPointOnSubd. Никто не может запретить вам использовать их для решения только что описанной задачи. Эти же ноды позволяют также определить, в пределах какой грани (faceln-dex) вы хотите задать точку на поверхности.
Рассмотрим далее еще один пример «нелегального» использования нодовой архитектуры.
Цветокоррекция. Использование анимационных кривых не по назначению
Для получения качественной картинки почти всегда в шейдерах приходится использовать разного рода текстуры, и в первую очередь текстуры для цвета. И почти всегда исходный материал для них приходится дорабатывать. Отчасти из-за специфики освещения (свет может быть сильным или даже цветным), отчасти для того, чтобы добиться точного цветового баланса между различными составляющими сцену объектами при рендеринге. Определенным образом можно «подправить» цветовой баланс используемой текстуры в Attribute Editor с помощью атрибутов из раздела Color Balance, но для более сложных правок приходиться пользоваться внешними программами, например, это Photoshop.
Однако, если на канале цвета появляется не просто файловая текстура, с которой легко поработать в программе Photoshop, а целая сетка из процедурных и файловых текстур и утилит, то перед присоединением этой сетки материалов к каналу цвета хочется слегка поправить ее результирующий цвет . Потренируемся на простой сцене с одной файловой текстурой.
Откройте новую сцену.
Откройте HyperShade и выделите материал lambertl.
Перетащите его в рабочую область HyperShade и увеличьте его изображение.
Выбрав его, откройте Attribute Editor и назначьте на канал цвета какую-нибудь файловую текстуру. Возьмите, например, стандартное изображение:
X:\Program Files\Alias\MayaN.N\brushlmages\wrapCloud.iff
Можно заметить, что текстура назначилась не только на цвет, но и на прозрачность (это ненавязчивый «майский» сервис, распознающий альфа-канала в назначаемом изображении.)
Выберите в HyperShade материал lambertl и покажите его входные связи (Graph=>Input Connections.)
Выделите связь, идущую на прозрачность материала (transparency), и удалите ее, чтобы лучше видеть текстуру, назначенную на цвет.
Попробуем встроить в наш материал конструкцию, функционально повторяющую известный и один из наиболее общеупотребительных инструментов Photoshop’a: Adjust Curves.
Очевидно, что между нодой filel и нодой lambertl надо вставить некие кривые, которые будут модифицировать полученный из текстуры цвет и отдавать его материалу lambertl.
Первое, что приходит на ум, это анимационные кривые, которые можно удобно редактировать. Коль скоро анимационные кривые также являются нодами с своими атрибутами, надо просто создать их и вставить между текстурой и материалом, установив необходимые связи.