image

Новости
Уроки и статьи
Загрузка
Обо мне
Ссылки

Switch to English
Описание:
Buffer_writer - поверхтностный шейдер для просчета одного объекта с разными шейдерами за один проход. Например, например когда нужно визуализировать объект с одним шейдером, например Lambert, а так же нужно просчитать в отдельные фаилы z канал, оклюжен, отражение и тп. для последующего композа.
Поддерживается 1 канал для основного рендера и 8 каналов для записи в различные фаилы.

Buffer_writer визуализирует только первый шейдер, все же остальные выводятся каждый в свой буфер и в последствии могут быть записаны разные фаилы.

Внимание! Шейдер работает только при рендере Mental Ray Stand Alone.
Для рендера Satnd Alone'ом прямо из Maya можно написать простой mel, чего я настоятельно рекомендую или воспользоваться написанным мною.



Использование:
Шейдер назначается как обычный поверхтностный шейдер. На входе он имеет 9 слотов типа color, где первый (render) визуализируется, а остальные выводят информацию каждый в свой буфер.
Соответственно чтобы пользоваться этими буферами их надо вначале объявить.
Например так:

frame buffer 0 "+rgba"
frame buffer 1 "+rgba_fp"
frame buffer 2 "rgb"

Чтобы проделать все то же в Maya нужно создать custom text подобного содержания в Render Globals/Custom Entities/Custom Scene/Custom Options Text с Append Mode.

Далее для записи результата из буферов в фаилы нужно добавить в описание камеры несколько строк, например:

output "+rgba" "iff" "c:/output_render.iff"
output "fb0" "tif" "c:/output0.tif"
output "fb1" "tif" "c:/output1.tif"
output "fb2" "bmp" "c:/output2.bmp"

Чтобы это сделать в Maya нужно создать custom text подобного содержания на камере с Replace Mode.

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

Пример:



Color Pass
Occlusion Pass
Reflection Pass
Z Pass


Result Compose

Go to Download

Если Вы обнаружили ошибки в работе шейдеров или просто имеете пожелания прошу сообщить об этом мне на puppet@rambler.ru