Для продвинутых. Если не считать конфуз с майскими SDS, официально МауаМап поддерживает и экспортирует в RIB любую геометрию, кроме PaintFX - впрочем, PaintFX в RIB не экспортирует ни один из известных плагинов. Этот вопрос - «А как отрендерить Paint Effects в Renderman?» - в свое время был самым задаваемым в русских форумах, посвященных Renderman: нам пришлось даже вынести его в FAQ. Впрочем, и у этой проблемы есть возможное решение ведь вывести данные из PaintFX в виде кривых не составляет особого труда, загвоздка лишь в применяемых кистях и их отрисовке.

Удаляем из сцены нашу овечку и импортируем ее заново. На этот раз мы не будем переводить ее в сабдивы штатными майскими средствами; вместо этого, выделяем ту геометрию, которую нужно отобразить в виде SDS и вызываем пункт меню МауаМап => Add Model Attributes. Затем в окне редактирования атрибутов в разделе SubDivision Surface выставляем нужную галочку и:

получаем наше животное в целости и сохранности. Но это не так интересно - на протяжении нашей главы мы уже с дюжину раз различными методами рендерили бедного барашка; попробуем теперь узнать, какие дополнительные преимущества перед MTOR имеет наш МауаМап. Для этого назначим на нашу модель любой материал из HyperShade и посмотрим, что произойдет (в данном случае мы назначили Blion с присоединенным к каналу.цвета, brownian);.............................................................

Оказывается, как и Mango, МауаМап поддерживает материалы HyperShade и конвертирует их в шейдеры RenderMan. Но, в отличие от Mango, МауаМап действительно создает новые шейдеры

- впрочем, делает это очень хитро, давайте посмотрим получившийся у нас шейдер (его можно найти в поддиректории нашего проекта \mayaman\sheep1\shaders\ - я убрал заголовок шейдера для краткости):

{

PROFILE(“begin”);

^pragma nolint

SURFACE_TEMPS;

APPLY_SUCE_PLANE else {

PROFILER SETUP 0 BLINN”);

BLINN_SETUP(v_0_);

if(only_do_opacity == 0) {

PROFILE(‘‘SETUP 1 BROWNIAN”);

BROWNIAN_SETUP(v_1J;

PR0F1LE(“SETUP 2 PLACE3DTEXTURE”);

PLACE3DTEXTURE_SETUP(v_2_);

PROFILE (“SIMULATE 2 PLACE3DTEXTURE”);

PLACE3DTEXTURE_SIM(v_2_);

v_1_placementMatrix = v_2_worldlnverseMatrix[0];

PROFILE (“SIMULATE 1 BROWNIAN”);

BROWNIAN_SIM(v_1_);

v_0_co(or = color(v_1_outCo[or);

]

PRO FILE (“SIMULATE 0 BLINN”);

BLINN_SIM(v_0_);

Ci = vJ3_outColor;

Oi = Os;

}

DEEP_SHADOW_OPACITY_HANDLER

PROFILE(“end”);

SURFACE_DEBUG_HOOK

}

He очень похоже на обычный шейдер, написанный на Renderman SL, правда? Тем не менее, это обычый шейдер. Вся хитрость в том, что в этом шейдере очень широко используются такие возможности языка SL, как макросы и подстановка значений. Если мы пропустим этот файл через препроцессор срр, то сможем увидеть истинное лицо нашего шейдера - впрочем, я не буду сюда его вставлять из-за достаточно большого размера - книжка-то у нас не резиновая.

Для продвинутых. Те же, кто не поленится заглянуть в получившиеся 40 килобайт (почти 1200 строк) кода на SL, узнают много нового о том, как на Renderman SL сымитировать ноды из MAYA HyperShade, да и вообще - про внутреннее устройство MAYA и про рендеринг вообще.


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