На самом деле, когда я занимался историей этого вопроса (чтобы кратко осветить его в этой вставке, для любознательных), я был буквально ошеломлем тем количеством информации, которая доступна в Интернете по поводу Визуального Программирования - а ведь визуальное построение шейдеров суть визуальное программирование и есть.

Как оказалось, первая графическая компьютерная система, которую продемонстрировал в 1963 году Сазерленд (она называлась SketchPad - для тех, кто уже запустил верный Google), уже была оснащена визуальным редактором для быстрого построения программ - и количество разработанных с тех пор систем визуального программирования огромно.

Так почему же мы до сих пор не строим все наши программы визуально? Почему программисты шейдеров в той же компании Пиксар до сих пор пользуются vi и emacs, создавая свои сотни тысяч строк кода шейдеров (цифры реальные)? Этому можно посвятить отдельную статью, а то и книгу; скажем лишь, что у визуального представления программ есть некий порог сложности, начиная с которого их становится сложно редактировать и эта возрастающая сложность редактирования и понимания нивелирует все достоинства метода.

Создаваемые в SLIM материалы назначаются на геометрию в MAYA, добавляя к шейпам новые собственные атрибуты с необходимой для MTOR информацией.

Более того, таким же образом (через кастомные атрибуты из SLIMa) вы можете добавлять в сцену свой собственный RIB-код при помощи так называемых RIBbox (мы их уже упоминали в отступлении для любознательных). Дальше больше: расширяемый SLIM (как и сам MTOR, при помощи Tel) позволяет вставлять в сцену TCLbox’bi, которые будут исполняться на этапе экспорта сцены в RIB и имеют полный доступ как ко внутренним интерфейсам самой MAYA, так и к командам MTOR и SLIM.

Для любознательных. Основной атрибут шейдера называется slimSurf; короткое имя, под которым он фигурирует в скриптах и в файлах *.ma - sss. В ASCII-файле MAYA это выглядит примерно так:

createNode nurbsSurface -n “revolvedSurfaceShapel” -p “revolvedSurfacel”; addAttr -ci true -sn “sss” -In “slimSurf” -bt “UNKN” -dt “stringArray”; setAttr -k off “.v”; setAttr “.fbd” no;

setAttr “.sss” -type “stringArray” 1 “OZQOMmpFLGEOOOOO” ; Вернемся к нашим тестовым баранам. Давайте теперь немного усложним нашу сцену. Поработайте немного над вашими примитивами. Раз уж заговорили про парнокопытных, у вас должно получиться что-то вроде этого:

Не получилось? Не расстраивайтесь, у меня тоже не получилось, поэтому я просто взял готовую модель (автор модели - Ник Габченко, за что ему отдельное спасибо) - из файла sheep.та (вы можете найти его на диске).

Эта модель - полигоны, переведенные в сабдивы (subdivision surfaces) при помощи команды Modify=>Convert=>Polygons to Subdiv. Давайте опробуем SLIM на деле и назначим овечке материалы: Renderman=>Slim=>New Palette.

В меню SLIM выбираем File > Create Appearance > Surface > Velvet - пусть овечкина голова будет бархатной. Двойной клик по шейдеру Velvet, клик по области Preview, и вот:


⇐ вернуться назад | | далее ⇒