Урок 5: Режим отображения "Overlay".

Учебные файлы для данного урока: VS_Tutorial_05.max, VS_Tutorial_05.vsp (скачать все материалы).

Студия использует видеоизображение как обычную текстуру в трёхмерной сцене. С одной стороны, это хорошо. Мы можем обращаться с виртуальным актёром так же, как с любым обьектом сцены. С другой стороны, это означает, что и обрабатываться это изображение будет таким же образом - фильтрация несколько "замылит" изображение актёра. Пока размер актёра меньше, чем размер кадра, это практически незаметно. Но что делать, если нам нужно показать крупный план актёра на весь кадр? Для этого и существует специальный режим отображения показа текстуры - "Overlay", при котором изображение этой текстуры отображается "тексел в пиксел" на весь экран. При этом альфа-канал (если он имеется) будет работать.

Создадим в 3DS Max сцену, в которой при определённом положении камеры (наезд на крупный план актёра) прямоугольник с назначенным на него видеоматериалом будет виден этой камерой "во весь экран". Создадим также прямоугольник - копию "актёра" с анимацией (actor_a). Он поможет нам понять, как работает режим "Overlay" и как его можно использовать и для других целей, кроме повышения качества изображения. Теперь экспортируем сцену и создадим новый проект (VS_Tutorial_05.vsp).


Экшен "Init" будет теперь таким:

:DATA.OPEN = VS_Tutorial_05.3d
:DATA.CURRENT.CAMERA = "Camera01"
:DATA.CURRENT.NODE = "Camera01"

:RENDER.VIDEO.LIVE_1.CREATE = 1
:RENDER.VIDEO.LIVE_1.FORMAT = ALPHA
:RENDER.VIDEO.LIVE_1.START = 1
:RENDER.MATERIAL.videomaterial_1.SOURCE = "LIVE_1"

:RENDER.VIDEO.MSDS_1.CREATE = 1
:RENDER.VIDEO.MSDS_1.FORMAT = LOOP
:RENDER.VIDEO.MSDS_1.DATA = movie.wmv
:RENDER.VIDEO.MSDS_1.START = 1
:RENDER.MATERIAL.screen.SOURCE = MSDS_1

:RENDER.MATERIAL.videomaterial_1.OVERLAY = 0
:DATA.NODE.actor_a.HIDE = 1

:TRACK.CAMERA.NODE = "Camera01"
:TRACK.ACTOR_A.NODE = "actor_a"

:TRACK.CAMERA.START = 0
:TRACK.ACTOR_A.START = 0

:DATA.PLAY=1

Создадим два экшена "actor overlay on" и "actor overlay off", в которых будет всего по одной строке -соответственно:
:RENDER.MATERIAL.videomaterial_1.OVERLAY = 1 и :RENDER.videomaterial_1.OVERLAY = 0

Создадим и соответствующие кнопочки в хотбаре. Нажмём кнопочку "zoom in", и после этого жмём поочерёдно новые кнопки "actor overlay on" и "actor overlay off". Видно, что при нажатии кнопки "actor overlay on" качество изображения актёра улучшается. Теперь нажмём "actor overlay on" и отьезжаем камерой от актёра (кнопка "zoom out"). При движении камеры видно, что изображение актёра при этом не масштабируется, просто края "срезаются". Поэтому режимом "Overlay" необходимо пользоваться аккуратно. Необходимо включать его тогда, когда это необходимо, в других случаях - выключать. Поэтому мы модифицируем экшены "zoom in" и "zoom out". После ожидания завершения трека "наезда" камеры добавим команду включения режима "Overlay", а вначале экшена "zoom out" поставим команду отключения режима.





Теперь посмотрим, как можно использовать режим "Overlay" для получения дополнительных эффектов. Посмотрите, как действуют экшены "splash1" и "splash2". Теперь Вам уже понятно, почему их результаты так сильно отличаются друг от друга, хотя разнятся они всего одним параметром команды "Overlay". Очевидно, Вы сможете придумать множество вариантов, как использовать эту интересную команду, тем более что её можно заставить выполняться не мгновенно (как мы это делали), а за какое-то время. Для этого достаточно в правой части команды добавить через запятую время (в секундах), за которое она должна будет выполниться.



В следующем уроке мы научимся имитировать тени и отражения.

к предыдущему урокук следующему уроку