- о, вспомнил! О пункте меню File=> Import.

Найдите на диске один из шейдеров, с которыми мы экспериментировали раньше, например, textured_noise.sl:

surface textured_noise ( float freq=100; )

I

Ci = texture(“texture.tx”, s, t)*noise(freq*s,freq*t);

}

Вызываем из главного меню ShaderMan File=>lmport=>Shader source as new brick…, выбираем только что найденный нами файл и через несколько секунд (в течение которых запускается и выполняется конвертер из шейдера SL в формат брика BR) на рабочем столе ShaderMan появляется новый брик - texturedjnoise. Присоединяем его к Surface Color кирпичика Oren-Nayar и немедленно получаем:

Таким образом мы можем загрузить в виде нового брика практически любой готовый шейдер, написанный на языке Renderman SL, и в дальнейшем использовать его как часть своих собственных шейдеров. Но это еще не все. В том же меню ShaderMan File=>lmport выбираем другой подпункт - RIB file as template. Находим нашего первенца, testl .rib - это тот самый, неосвещенный, с единственным одиноким полигоном перпендикулярно камере:

Display “RenderMan” “framebuffer” “rgb”

Format 256 192 -1 ShadingRate 1 WorldBegin Surface “plastic”

Polygon “P” [0.5 0.5 0.5 0.5 -0.5 0.5 -0.5 -0.5 0.5 -0.5 0.5 0.5]

WorldEnd

Пока не случилось непоправимое, быстренько открываем этот файл в тектовом редакторе, вспоминаем, чему мы учились всю эту главу, и добавляем источники света (для ленивых или тех, кто читает книжку, только сидя в метро - файл test_shaderman.rib):

Display “RenderMan” “framebuffer” “rgb”

Format 256 192 -1 ShadingRate 1 WorldBegin

LightSource “ambientlight” 500

“lightcolor” [0.051 0.051 0.051]

LightSource “distantlight” 501 “from” [1 1.5 -1] “to” [0 0 0]

LightSource “distantlight” 502 “lightcolor” [0.2 0.2 0.2]

“from” [-1.3 -1.2 -1.0] “to” [0 0 0]

AttributeBegin

Attribute “identifier” “name” [“polyShape”]

Surface “plastic”

Polygon “P” [0.5 0.5 0.5 0.5 -0.5 0.5 -0.5 -0.5 0.5 -0.5 0.5 0.5]

AttributeEnd

WorldEnd

Кроме источников света мы также добавили аттрибут “identifier”, который позволяет нам дать имя объекту - такие аттрибуты добавляют, в том числе, все экспортеры из AAAYA в RIB. И только теперь импортируем в ShaderMan.

Для продвинутых. Те же самые операции по импорту файлов можно проделать, просто перетянув их мышкой из Windows Explorer.

Вроде бы ничего не поменялось и не произошло, кроме разве что сообщения в консольном окне (и строке статуса) ShaderMan - \rib_example\test_shaderman.rib : done. Для того, чтобы понять всю важность произошедшего, включите обратно область preview и попробуйте выбрать в выпадающем списке объект:

Мы только что загрузили внешний RIB файл в качестве сцены для использования в ShaderMan

- и программа предоставила нам возможность выбрать объект, на котором мы будем тестировать наш шейдер (не случайно мы дали нашему объекту имя).

Попробуем проиллюстрировать все эти возможности, модицифировав диаграмму передачи данных и файлов в рамках RAT. Стоит обратить внимание на то, что некоторые стрелочки в схеме

- двунаправленные; это означает, например, что ShaderMan может как экспортировать, так и импортировать файлы SL.


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