Меблируем комнату. Часть 3: Модели
2014-09-04
В завершение цикла статей о создании мультяшной комнаты мы рассмотрим графическую составляющую приложения - т.е. сами модели, их настройки, особенности сцены и т.д.
Моделирование
Процесс моделирования был, по большей части, стандартным: для большинства объектов делались высокополигональные модели, затем - низкополигональные. Но, тем не менее, в данном случае активно использовался инструмент редактирования нормалей, а с ним - множественные фаски. Данная техника позволяет достичь эффект высокополигональных углов. Для демонстрации рассмотрим эту технику на кубе:
Освещение, настройки сцены и ракурс во всех примерах одинаковые. Первый куб - обычный стандартный куб со смягченным режимом затенения (Shading: Smooth). Второй - тот же самый куб, имеющий одиночную фаску на всех ребрах. На третьем отредактированы нормали. Очевидно, что третий вариант выглядит наиболее правдоподобно. Помимо этого преимущества данный метод также более быстрый, чем использование карт нормалей. Так что это является эффективным и эффектным решением для несложных моделей.
Познакомиться ближе с данным инструментом можно в соответствующем разделе руководства пользователя.
Такая техника также позволяет создавать интересные оптические иллюзии. В сцене с мультяшной комнаткой я использовал данный эффект на плинтусах. Нормали направлены перпендикулярно относительно друг друга, что создает ощущение ребристой ступенчатой поверхности, которой на самом деле не существует:
Помимо этого, для создания атмосферы мультяшности были использованы иные художественные приемы: формы объектов мягкие, выгнутые, элементы некоторых моделей увеличены - винт и кнопка вентилятора, ручки на комоде. Также полигонаж округлых форм увеличен, что наглядно видно на сетке:
Настройка материалов
Возможно, посмотрев на сетку, вы задались вопросом: для чего под каждым предметом мебели плоскость? Эти плоскости используются для имитации взаимного затенения (ambient occlusion). Имитация реализована для оптимизации сцены. Плоскости имеют прозрачный материал с запеченным взаимным затенением от объектов, под которыми находятся. Карты взаимного затенения большинства объектов в комнате находятся в одном файле изображения в разных цветовых каналах: это сделано для экономии видеопамяти и снижения количества обращений к текстурам.
Материалы мебели реализованы разными способами: как пример, на комоде вертексный цвет используется для диффузной окраски, в то время как на столе он используется исключительно как маска: при таком использовании очень удобно контролировать цвета объекта прямо из нодового материала. На кровати использована сложная комбинация этих способов, также задействованы бесшовные текстуры: для карт нормалей и окраски. Этот материал выглядит увесистым; однако, учитывая то, что в нем в основном используются бесшовные текстуры и вертексный цвет, он является относительно несложным для движка.
Материал комода:
Материал стола:
Материал кровати:
Пожалуй, самый интересный материал на сцене - лучи света из окна. Реализован он следующим образом: при помощи ноды TIME происходит постоянное смещение двух текстурных масок по UV-развертке навстречу друг другу, в результате чего создается впечатление объемных движущихся солнечных лучей. К этому добавлены эффект Френеля и маска вертексного цвета для сглаживания углов. Многочисленные математические операции обеспечивают достаточную гибкость настроек материала. Результат всех действий идет в альфа-канал.
Остальные материалы не во многом отличаются от описанных выше. Вы можете ознакомиться с ними самостоятельно, файлы сцены присутствуют в составе SDK.
Освещение и наcтройки сцены
В сцене присутствуют две лампы: первая - общее освещение и тени (тип Sun), вторая - имитация рассеянного мягкого света от окна (тип Point). Также используется Environment Lighting с силой 0,3. В остальном настройки стандартны.
Анимация
На сцене анимирован один объект - вентилятор. Было решено использовать арматурную анимацию. Арматура довольна простая и состоит из трех костей:
Анимирование производилось расстановкой ключей и редактированием кривых. Также использовался модификатор кривых Cycles. Анимационные последовательности были запечены для распознавания движком.
Заключение
Цикл "Меблируем комнату" рассмотрен до конца. Все файлы вы можете найти в дистрибутиве Blend4Web SDK.
При помощи Blend4Web возможно реализовывать интерактивные веб-приложения с высоким уровнем гибкости и оптимизации, это не потребует дополнительных временных затрат. Также некоторые присутствующие в аддоне "хитрости", расширяющие возможности Blender, сильно облегчают задачу 3D художника.
Запустить приложение в отдельном окнеИзменения
[2014-09-04] Изначальная публикация.
[2017-01-12] Исправлены некорректные/битые ссылки.