Новый редактор нормалей
2015-06-23
Введение
Редактирование нормалей - достаточно простой и эффективный способ изменить собственное затенение трехмерной модели, не усложняя ее геометрию.
Самое известное применение редактирования нормалей - создание эффекта сферического затенения на листве растений. Как видно на картинке, дерево с редактированными нормалями затеняется более мягко, слева же освещение выдает низкополигональную природу геометрии.
Сюда же относится редактирование прямоугольников с текстурой травы. При взгляде на траву против направления света можно видеть, что трава становится неестественно темной. Если же направить все нормали вверх, то затенение будет создавать ощущение равномерного освещения.
Этот метод также хорошо подходит для создания плоского затенения на низкополигональных моделях с фасками, как, например, на этих воротах. Затенение на модели без редактированных нормалей смотрится размазанным, в то время как на модели с отредактированными нормалями затенение более четкое на углах.
Более сложный пример редактирования нормалей - фотореалистичная модель очков. Правильное затенение было достигнуто тщательным и кропотливым редактированием каждой вертексной нормали на модели.
Новые возможности редактора нормалей
Для тех, кто уже знаком с возможностями редактора нормалей Blend4Web, будет интересно услышать прежде всего об изменениях, которые произойдут в следующей версии движка:
- теперь в качестве хранилища массива данных с направлениями вертексных нормалей используется "родной" блок данных Blender (появился в версии 2.74);
- редактирование нормалей и отображение затенения теперь происходит в режиме редактирования (Edit Mode);
- кнопки Save и Auto Save убраны, все изменения записываются сразу же автоматически;
- вращение нормали выделенного вертекса можно производить непосредственно в окне Viewport'a по горячим клавишам Shift+Ctrl+R, подобно остальным операциям вращения в Blender;
- добавлен режим Split Mode, который позволяет редактировать вертексную нормаль независимо для каждой грани геометрии;
- убрана опция Export Vertex Normals, теперь редактированные нормали экспортируются автоматически.
Обзор нового интерфейса и функционала
Интерфейс редактора претерпел существенные изменения. Были убраны и добавлены некоторые кнопки, также для удобства было немного изменено их положение на панели.
Activate
Описание
Новая кнопка Activate включает режим редактирования вертекных нормалей, и одновременно заменяет собой старый параметр Export Vertex Normals, который теперь убран из настроек объекта.
Использование
Достаточно в режиме Edit Mode нажать кнопу Activate, и можно приступать к редактированию вертексных нормалей. Пока она остаётся в активном режиме, затенение объекта и его экспорт будут осуществляться с учетом редактированных вертексных нормалей. Другими словами, после внесения изменений, для их отображения во Viewport'е Blender и в движке Blend4Web кнопка должна быть оставлена активной.
Show Normals
Описание
Для удобства в панель продублирована оригинальная кнопка Blender, включающая отображение маркеров вертексных нормалей во Viewport'е, а так же настройка их длины.
Использование
Достаточно просто включить кнопку Show Normals прямо на панели редактора вертексных нормалей Blend4Web или в правой панели Blender в разделе Mesh Display и настроить комфортную длину маркера в поле Size.
Вращение
Описание
При помощи этого инструментария можно вращать нормаль каждого вертекса индивидуально.
В редактор нормалей была также добавлена кнопка Rotate (горячие клавиши Shift+Ctrl+R), позволяющая вращать вертексные нормали в привычном для пользователя Blender режиме.
Использование
Выделив один или несколько вертексов, которые хотите изменить, вращайте их, используя визуальную сферу на панели редактора вертексных нормалей Blend4Web, или задайте направление каждой координате в цифровом значении.
Более удобный вариант манипуляции с вертексными нормалями предоставляет кнопка Rotate. Вращение происходит по координатам в пространстве экрана, но, как и при обычном вращении объектов в Blender, можно изолировать нужную ось координат и вращать только по ней (нажав X, Y или Z).
Split Normals
Описание
Режим Split Normals позволяет редактировать вертексные нормали индивидуально для каждой грани (face в Blender), образующей редактируемую вершину (vertex в Blender). Переключатель вертексных индексов позволяет перемещаться между нормалями разделенного вертекса.
Использование
Перейдя в режим Split Normals, выберите нужный вертекc и измените направление его нормали. Прежде всего подвергнется модификации та нормаль, которая имеет наименьший индекс в очереди (то есть 0) редактируемого вертекса. Далее, перемещаясь по индексам, перейдите на следующую нормаль этого вертекса и редактируйте ее.
Average Split
Описание
Average Split усредняет направление вертексной нормали, исходя из направлений нормалей, разделенных функцией Split Normals.
Использование
Для того, чтобы объединить несколько разделенных вертексных нормалей в одну так, чтобы она имела их среднее направление, достаточно выделить нужный вертекс и нажать Average Split.
Restore
Описание
Кнопка Restore восстанавливает исходное направление нормалей выделенных вертексов.
Использование
Для того, чтобы восстановить нормали к исходному направлению (которое раcсчитывается на основе нормалей полигонов), нужно выделить нужные вертексы и нажать кнопку Restore.
Tree, Foliage и Face
Описание
Функция Tree направляет нормали выделенных вертексов в сторону от 3D-курсора. Foliage направляет нормали вертекcов строго вверх по глобальной оси Z. Face направляет нормали вертексов выделенного полигона параллельно нормали этого полигона.
Использование
Чтобы воспользоваться функцией Tree, выделите нужные вертексы и расположите курсор в нужном вам месте. После нажатия кнопки Tree все выделенные вертексы будут направлены в сторону от курсора, как будто бы они выстреливают из одной точки.
Функция Foliage очень проста в использовании: выделите нужные вертексы и нажмите кнопку, и функция направит их строго вверх.
Чтобы направить нормали вертексов параллельно нормали полигона, выделите нужный полигон и нажмите Face. Все нормали вертексов, образующих этот полигон, будут направлены параллельно нормали самого полигона. Эта функция работает только с одним выделенным полигоном одновременно.
Copy/Paste
Описание
Копирует направление нормали с одного вертекса на другой.
Использование
Выделите вертекс для копирования и нажмите Copy. Затем выделите вертекс, на который хотите копировать результат, и нажмите Paste. Вставлять скопированную информацию можно на множество разных вертексов. Кнопки не активны в режиме Split Mode и не переносят данные уже "разделенных" нормалей на другие вертексы.
Copy From Mesh
Описание
Эта функция позволяет копировать направление вертексных нормалей с одной геометрии на другую. Существует два режима копирования, Matched Vertices и Nearest Vertices.
В режиме Matched Vertices копируются направления нормалей с вертекса одной модели на вертекс другой, если у них одинаковые координаты; прочие вертексы игнорируются. В режиме Nearest Vertices копируются нормали с ближайших вертексов другой модели.
Использование
Работа с этой функцией производится в объектном режиме. Первым нужно выделить объект, с которого будет происходить копирование, далее объект, на который будет происходить копирование. Необходимо также выделить вертексы целевого объекта, на которые необходимо произвести перенос направления нормалей.
Заключение
Новый редактор нормалей будет включен в предстоящий релиз Blend4Web 15.06, который ожидается в конце этого месяца. Тем не менее, попробовать его в действии можно уже сейчас - для этого войдите на сайт под своим логином и загрузите предварительную сборку дистрибутива со страницы загрузок.
Все комментарии, пожелания по улучшению и просто впечатления от использования можете оставить на нашем форуме в специальной теме.