Самоучитель по Blend4Web. Глава 5. Внешний лоск
2016-12-06
Вроде всё мы с вами сделали: модели готовы, материалы созданы, текстуры добавлены. И всё же чего-то не хватает. Визуально сцена мертвая и безжизненная. А ведь это презентация. Должно быть ярко, привлекательно. Я бы даже сказал вызывающе!
Но не спешите добавлять еще больше объектов или срочно переделывать материалы. Мы с вами сейчас займемся антуражем. Теми маленькими мелочами, которые могут значительно улучшить внешний вид.
Фон, свет и тени
Посмотрите на рисунок. Унылый серый фон вызывает только тоску. Конечно, он не должен блистать и переливаться, тем самым, отвлекая внимание от самой модели. Выгодно оттенить, облагородить — вот его задача.
В окне Properties имеется панель с характерным названием World. Именно в ней хранятся те инструменты, которые помогут улучшить вид нашей презентации.
Blender позволяет установить любой цвет для фона сцены. По умолчанию предлагается серый, и именно он должен отображаться в вашем проекте в окне Preview (см. рис. 2). Чтобы изменить заливку цвета на иной, нужно щелкнуть по образцу с названием Horizon Color и установить желаемый оттенок. Также включите опцию Render Sky.
Стало немного лучше, но всё же выглядит топорно. Куда интереснее будет, если создать градиент.
Blender предлагает несколько градиентов. Некоторые из них подходят для создания реалистичного окружения, например атмосферы, но в нашем случае нужен простой переход из цвета в цвет.
Для этого на панели редактора имеется ещё один образец с названием Zenith Color, который позволяет выбрать второй цвет.
Но самое главное — это режимы смешивания цветов неба. Всего программа предлагает 3 опции: Paper Sky, Blend Sky, Real Sky. Комбинируя их, можно получить нужный эффект.
Вы получите градиент, установив галочку в Blend Sky. Если включите Real Sky, то программа будет использовать образец Horizon Color, как горизонт, а вот Paper Sky «прикрепит» полученный фон намертво к камере. Без активации этой опции, вы будете любоваться динамичным фонам при движении камеры.
Лично мне нравится черно-синий градиент, а так, выбирайте сами (рис. 3).
На рисунке я отметил опцию Environment Lighting. Её включение может значительно улучшить общее восприятие картинки. Это, так называемый, «окружающий свет».
Вы уже знакомы с объектом Light, который является источником света в сцене. Но Environment Light — нечто иное. Он не имеет конкретного источника, направления излучения и других параметров. Его задача в равномерном освещении всего в сцене. Вообразите себе темную комнату с настольной лампой, которая направлена на лежащее, на столе яблоко. Та часть, которая повернута к лампе, яркая и хорошо освещена, а вот обратная сторона темная и блеклая. Но вы всё равно её видите, пусть даже и плохо. В реальном мире, на освещенность объектов влияет множество факторов, которые просто невозможно учитывать в виртуальной сцене. Так, в трехмерном исполнении задняя часть яблока станет абсолютно черной.
Environment Light позволяет подсветить объекты без использования дополнительных ламп. Всего имеется два параметра: Energy (мощность) и цвет подсветки. Вы можете выбрать любой из трех вариантов источников цвета:
White (белый).
Sky Color (цвета фона).
Sky Texture (цвет текстуры).
Конечно, всё зависит от сцены. Для себя я установил мощность равную 0.1, а в качестве цвета White.
Теперь у нас есть фон и свет окружения — стало немного симпатичнее, но всё-таки чего-то не хватает. Догадались?
Законы физики гласят, свет и тени взаимосвязаны. Но прежде чем перейти к теням, давайте разберемся с источниками света.
Blender предлагает целых 5 вариантов «лампочек». В этом можно убедиться, если выбрать объект Lamp в сцене и открыть специальную панель настроек (рис. 4).
Рассмотрим особенности самых популярных источников света для графики реального времени. Их всего три:
Point. Точечный источник света. Это обычная «лампочка», которая равномерно светит во все стороны, но с расстоянием сила освещённости объектов ослабевает.
Sun. Название (с англ. «Солнце») точно описывает его функциональность. Мощный источник света, поведение которого зависит от его направления (угла поворота), но его местоположение в сцене совершенно ни на что не влияет.
Spot. Это «прожектор». С его помощью в сцене вы можете выделить конкретный объект. Его действие действительно напоминает прожектор.
Все эти источники света имеют несколько важных и одинаковых параметров:
Energy. Мощность излучения.
Shadow. Включите, чтобы получать тени от этого источника.
Color. Цвет света.
Используя различные типы источников света и их настройки, можно значительно улучшить визуальную привлекательность своей презентации, но будьте осторожны! Большое количество источников света крайне негативно скажется на быстродействии вашего приложения. Разработчики Blend4Web советуют использовать не более 8 «лампочек» в одном кадре. А по-хорошему, ограничьте свой аппетит двумя-тремя.
Есть ещё один немаловажный нюанс — тени. Blend4Web позволяет генерировать тени одновременно от нескольких источников света. Когда вы добавляете «лампочку» в сцену, то опция «Shadow» уже включена по умолчанию. Однако теней вы не увидите, по одной простой причине — каждый объект нужно «научить» их принимать или отбрасывать. Это сделано, чтобы художник мог сам выбрать от какого источника и какие объекты будут с тенями, так как они не только улучшают внешний вид, но и значительно нагружают систему. Привыкайте, 3D графика в реальном времени требует аккуратного обращения!
Выделите нужный объект и откройте панель Object окна Properties. Найдите вкладку Shadows. Параметр Cast Shadows заставит объект отбрасывать тени, а Receive Shadows отображать чужие.
Магия отражений
Мы уже рассматривали способ создания материалов с отражающей поверхностью. Однако у него есть два существенных недостатка — скорость работы и необходимость наличия отображаемых объектов. Одно дело, когда вы смотрите в зеркало и видите только себя любимого, другое дело, когда это же зеркало вы выносите на улицу — дома, деревья, небо, люди… Выходит, для качественного отражения нужно всё это моделировать?
Давным-давно создатели компьютерных игр придумали очередной иллюзионный трюк. Чтобы не выполнять сложные расчеты по отражению многих трехмерных объектов, они решили использовать обычную текстуру.
Карта окружения (Environment Map), а именно такое название получила эта текстура, представляет собой специально созданное изображение, своеобразный слепок всех сторон, вокруг определенной точки (рис. 6).
Это и есть карта окружения. Для её создания используются самые разные программы, в том числе и Blender. Я не буду останавливаться на этом вопросе. Всех интересующихся отсылаю в официальную документацию Blend4Web — там всё написано. Впрочем, некоторые готовые карты вы можете найти в SDK движка или просто в сети Интернет.
Работа с Environment Map практически ничем не отличается от использования обычной текстуры, хотя есть некоторые нюансы. Давайте рассмотрим их на небольшом примере.
Для своей презентации я решил, что с отражающими поверхностями в сцене будут детали с материалом «хром». Это подставка и металлическая вставка вокруг корпуса с кнопкой. Именно они должны быть максимально зеркальными.
Для этой задачи не требуется выполнять создание UV-координат. Достаточно открыть нужный материал и добавить новый текстурный слот.
Обратите внимание на тип текстуры. Необходимо выбрать Environment Map в меню Type. После загрузки текстуры выполните следующие действия:
1. Перейдите в панель Influence и отключите опцию Color.
2. В этой же панели включите Mirror. Чем выше значение этой опции, тем больше влияния будет у карты отражения.
Вот и все, такими несложными средствами мы сделали нашу сцену гораздо симпатичнее. Мне нравится, а вам?
Ссылка на интерактивную сцену.
Обновленные исходные файлы вы можете найти в Blend4Web SDK, начиная с релиза 16.12, как в версии CE, так и в версии PRO. Они находятся в директории: blend4web/blender/tutorials/basic/for_beginners.