События

Новый редактор нормалей

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) редактируемого вертекса. Далее, перемещаясь по индексам, перейдите на следующую нормаль этого вертекса и редактируйте ее.

Редактирование вертексных нормалей в режиме Split Normals.

Average Split

Описание

Average Split усредняет направление вертексной нормали, исходя из направлений нормалей, разделенных функцией Split Normals.

Использование

Для того, чтобы объединить несколько разделенных вертексных нормалей в одну так, чтобы она имела их среднее направление, достаточно выделить нужный вертекс и нажать Average Split.

Получение усреднённого направления вертексных нормалей с помощью Average Split.

Restore

Описание

Кнопка Restore восстанавливает исходное направление нормалей выделенных вертексов.

Использование

Для того, чтобы восстановить нормали к исходному направлению (которое раcсчитывается на основе нормалей полигонов), нужно выделить нужные вертексы и нажать кнопку Restore.

Восстановление изначального направления измененных вертексных нормалей.

Tree, Foliage и Face

Описание

Функция Tree направляет нормали выделенных вертексов в сторону от 3D-курсора. Foliage направляет нормали вертекcов строго вверх по глобальной оси Z. Face направляет нормали вертексов выделенного полигона параллельно нормали этого полигона.

Использование

Чтобы воспользоваться функцией Tree, выделите нужные вертексы и расположите курсор в нужном вам месте. После нажатия кнопки Tree все выделенные вертексы будут направлены в сторону от курсора, как будто бы они выстреливают из одной точки.

Функция Foliage очень проста в использовании: выделите нужные вертексы и нажмите кнопку, и функция направит их строго вверх.

Чтобы направить нормали вертексов параллельно нормали полигона, выделите нужный полигон и нажмите Face. Все нормали вертексов, образующих этот полигон, будут направлены параллельно нормали самого полигона. Эта функция работает только с одним выделенным полигоном одновременно.

Пример использования функций Tree, Foliage и Face.

Copy/Paste

Описание

Копирует направление нормали с одного вертекса на другой.

Использование

Выделите вертекс для копирования и нажмите Copy. Затем выделите вертекс, на который хотите копировать результат, и нажмите Paste. Вставлять скопированную информацию можно на множество разных вертексов. Кнопки не активны в режиме Split Mode и не переносят данные уже "разделенных" нормалей на другие вертексы.

Пример копирования направления вертексной нормали с одного вертекса на другие.

Copy From Mesh

Описание

Эта функция позволяет копировать направление вертексных нормалей с одной геометрии на другую. Существует два режима копирования, Matched Vertices и Nearest Vertices.

В режиме Matched Vertices копируются направления нормалей с вертекса одной модели на вертекс другой, если у них одинаковые координаты; прочие вертексы игнорируются. В режиме Nearest Vertices копируются нормали с ближайших вертексов другой модели.

Использование

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

Копирование направления вертексных нормалей с одного объекта на другой.

Заключение

Новый редактор нормалей будет включен в предстоящий релиз Blend4Web 15.06, который ожидается в конце этого месяца. Тем не менее, попробовать его в действии можно уже сейчас - для этого войдите на сайт под своим логином и загрузите предварительную сборку дистрибутива со страницы загрузок.

Все комментарии, пожелания по улучшению и просто впечатления от использования можете оставить на нашем форуме в специальной теме.

Комментарии
09 июл. 2015 12:02
Народ во всю юзает уже. Подсели

https://twitter.com/momo_ka_mama/status/618977266266083328


29 июл. 2015 16:26
Наш редактор признан лучшим инструментом для редактирования нормалей в Blender.

http://blendernpr.org/lets-talk-about-normals/
23 апр. 2016 19:01
Пожалуйста, объясните как копировать направления нормалей с объекта на объект.
"Работа с этой функцией производится в объектном режиме." - это понятно.
"Необходимо также выделить вертексы целевого объекта" - КАК в объектном режиме выделить вертексы? В режиме редактирования опция копирования с объекта не активна.
Напишите подробнее. Я по всякому пробую и ничего не получается. Перенос нормалей работает только кнопками Copy-Paste по одному вертексу.
24 апр. 2016 14:46
Добро пожаловать на форум!
Ответ на сообщение пользователя Lali-K
Пожалуйста, объясните как копировать направления нормалей с объекта на объект.
"Работа с этой функцией производится в объектном режиме." - это понятно.
"Необходимо также выделить вертексы целевого объекта" - КАК в объектном режиме выделить вертексы? В режиме редактирования опция копирования с объекта не активна.
Напишите подробнее. Я по всякому пробую и ничего не получается. Перенос нормалей работает только кнопками Copy-Paste по одному вертексу.
https://youtu.be/ZzRHlFkQLXo
25 апр. 2016 15:43

Добро пожаловать на форум!
Спасибо :)
Редактор конечно бомба! Как раз для таких ленивых и безграмотных как я - нажал кнопку и готово :) Без него яб сейчас не знаю что б делала…


https://youtu.be/ZzRHlFkQLXo
Вы б там хоть комментировали что делаете :) Я вроде уже разобралась, что надо выделять в режиме редактирования нужные вертексы, а потом в объектном режиме уже применять. Так?
25 апр. 2016 17:21
Да, все верно

А каким проектом занимаетесь, если не секрет? :)
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.