Как перевернуть нормали в блендер
правильное направление нормалей
Смоделировал рубашку. Применённые модификаторы видно на скрине ниже. 
Нормали направлены таким образом (на воротнике перенаправлял нормали) 
После мне нужно заскульптить детали на рубашке. Я удалил модификатор subdivision Surface и применил другой — Multiresolution.
Случилось это. (направление нормалей не трогал) 

Ну ладно, ничего страшного в этих тёмных полигонах нет — подумал я и продолжил работу.
Появились артефакты при переключении на уровни подразделения отличные от 5. (На скрине превью уровень 4) 
При уровне 5 (именно столько раз я подразделил) всё более менее хорошо. Только на уголках ворота косяки. 
Далее я перенаправил нормали выделяя все вершины и нажимая ctrl+N. 
Тёмные полигоны остались, но зато артефакты уменьшились.
На скринах последовательное увеличение уровня подразделения: 



Подскажите, как правильно направить нормали, чтобы избавиться от артефактов модификатора Multiresolution? Как повлияют на финальный рендер тёмные полигоны? Нужно ли это исправить? И как это сделать?
Есть вероятность, что при рендере ничего видно не будет, но все равно с нормалями нужно разобраться.
Есть два способа: Ctrl + N (как ты уже делал) и вручную Flip Direction.
Модификаторы можешь отключить на время выворачивания нормалей. В итоге все должно быть хорошо без каких либо подразделений.
Трудности и «глюки», возникающие у новичков в программе Blender, и как их преодолеть
Blender это замечательный бесплатный 3d пакет, который делает возможным и доступным осуществление гигантского количества проектов, и, как человек, прошедший путь от абсолютного новичка в 3d до преподавателя данной программы в учебном центре «Специалист» в Москве, я могу поделиться несколькими типами, которые помогут преодолеть несколько несложных, но каверзных моментов, которые хоть и очень просты, но далеко не очевидны, и могут заставить просидеть несколько часов в поиске решения проблемы.
Перевод программы и подсказок
Для того чтобы активировать подсказки, если они не работают, нужно зайти в меню Edit-Preferences-Interface. Поставить галочку напротив Tooltips.
Для активизации перевода подсказок в том же разделе открываем выпадающее меню Translation, ставим русский язык, и галочку напротив Affect Tooltips.
Забагивание области просмотра
Находится эта функция в меню View-Frame selected.
Clipping
устраняется заходом в боковое меню нажатием кнопки N, и во вкладке view в выпадающем меню view, уменьшаем значение Clip Start (Например 0,001)
Нормали
-Нормали это вектор перпендикулярный плоскости полигона, который указывает блендеру куда ему отражать свет. Направлен этот вектор только в одну сторону, то есть если нормаль вашего полигона развернута внутрь объекта, как часто случается в blender, то из за этого у вас будут проблемы на каком-то этапе работы.
Развернуть нормали нам помогут функции Mesh-Normals-Flip (или recalculate outside)
Также мы можем выделить все полигоны объекта (шорткат А) и нажать Recalculate outside чтобы blender автоматически пересчитал все наши полигоны наружу.
За направлением нормалей лучше следить.
Двойные вертексы
Карты нормалей
Проблема в том что карты нормалей, в вышеперечисленных, и не только, программах, запекаются c использованием DirectX, а blender работает с OpenGL. Если говорить простым языком то нам нужно развернуть зеленый канал на карте нормалей. Делается это следующим образом:
Надеюсь, что данный пост поможет людям, осваивающим блендер, проскочить несколько часов поиска решения проблем!
Редактор нормалей¶
Пример работы редактора нормалей:
Основные особенности редактора нормалей:¶
для хранилища массива данных с направлениями вертексных нормалей используется “родной” блок данных Blender (появился в версии 2.74);
редактирование нормалей и отображение затенения теперь происходит в режиме редактирования ( Edit Mode );
все изменения записываются сразу же автоматически;
редактированные нормали экспортируются автоматически.
Интерфейс¶
Activate¶
Кнопка Activate включает режим редактирования вертекных нормалей.
Show Normals¶
Для удобства в панель продублирована оригинальная кнопка Blender, включающая отображение маркеров вертексных нормалей во Viewport’е, а так же настройка их длины.
Rotate¶
При помощи этого инструментария можно вращать нормаль каждого вертекса индивидуально. Функция Rotate также доступна по горячим клавишам Shift+Ctrl+R и позволяет вращать вертексные нормали в привычном для пользователя Blender режиме.
Выделив один или несколько вертексов, которые хотите изменить, вращайте их, используя визуальную сферу на панели редактора вертексных нормалей Blend4Web, или задайте направление каждой координате в цифровом значении.
Scale¶
Обратите внимание, что видимая длинна нормали определяется параметром Size и не меняется при масштабировании.
Режимы Absolute и Offset¶
Режим Absolute¶
Режим Offset¶
В этом режиме к нормальному вектору прибавляется вектор, заданный пользователем.
Split Normals¶
Режим Split Normals позволяет редактировать вертексные нормали индивидуально для каждой грани ( Face в Blender), образующей редактируемую вершину ( Vertex в Blender). Переключатель вертексных индексов позволяет перемещаться между нормалями разделенного вертекса.
Average¶
Restore¶
Кнопка Restore восстанавливает исходное направление нормалей выделенных вертексов.
3D Cursor, Axis и Face¶
Кнопка 3D Cursor ориентирует нормали выбранных вершин по направлению к 3D-курсору (если активирован параметр Towards на панели Vertex Normal Cursor ) или в противоположную сторону. Кнопка Axis направляет нормали вдоль одной из осей координат (ось задаётся на той же панели Vertex Normal Cursor ). Кнопка Face ориентирует нормали всех вершин выбранной грани параллельно нормали этой грани.
Использовать функцию Axis очень просто: достаточно выбрать вершины и нажать кнопку, после чего функция направит нормали этих вершин вдоль оси координат, выбранной на панели Vertex Normal Cursor (по умолчанию выбрана ось Z) или в противоположном направлении (если отключить опцию Towards на той же панели).
Copy/Paste¶
Копирует направление нормали с одного вертекса на другой.
Copy From Mesh¶
В режиме Matched Vertices копируются направления нормалей с вертекса одной модели на вертекс другой, если у них одинаковые координаты; прочие вертексы игнорируются. В режиме Nearest Vertices копируются нормали с ближайших вертексов другой модели.
Работа с этой функцией производится в объектном режиме. Первым нужно выделить объект, с которого будет происходить копирование, далее объект, на который будет происходить копирование. Необходимо также выделить вертексы целевого объекта, на которые необходимо произвести перенос направления нормалей.
© Copyright 2014-2017, Триумф. Обновлено: 2019-04-16.
Normal’ное волшебство
Вообще-то правильный ответ первый, но вот крайние примитивы имеют одинаковое количество вершин, хотя и выглядят по-разному.
Как вы уже поняли, секрет «высокополигональности» третьего объекта в правильно повернутых нормалях вершин, за счет чего скосы на ребрах выглядят более пологими. А вот для среднего объекта я уже добавил дополнительные ребра «жесткости». Чтобы было понятно, о чем идет речь, посмотрите на рисунок ниже.
рис. 2 Структура примитивов
Редактирование нормалей — это сложный и кропотливый процесс, который необходим только в двух случаях: добавление реалистичности и уменьшение количество вершин. В последнем очень даже нуждаются художники, создающие модели для игр (особенно мобильных) и браузерных приложений. В одном случае всё упирается в производительность слабых мобильных чипов, в другом — требовании экономии сетевого трафика.
К примеру, мой скриншот с тремя кубами. Поставленная простая задача — создать фаски на гранях объекта, что я и сделал. Вот только при включении сглаживания всё расплывалось. Для получения более четких переходов пришлось добавить дополнительные элементы. В итоге начальные 24 вершины превратились в 96. Вроде пустяк, но это лишь примитивный куб.
Ручное редактирование нормалей позволило не увеличивать количество элементов и в тоже самое время получить весьма достойный результат. Причем его можно было бы значительно улучшить. Об этом и сказ далее.
рис. 3 Просто нормали
Одна вершина — одна нормаль. Вопрос только в одном, как их редактировать? Стандартные способы Blender здесь не работают. Хотя есть, к примеру, специальный модификатор Normal Edit. Но он хорош только для массового редактирования и не предоставляет доступа к отдельным элементам (это можно сделать, но уж больно извращенным способом).
В последнее время я сконцентрировался на браузерных проектах и, соответственно, на Blend4Web. В его состав входит уникальный редактор нормалей с очень роскошным функционалом. Разумеется, им можно пользоваться не только для подготовки моделей для WebGL. Обработанные с его помощью объекты прекрасно рендерятся или экспортируются в FBX для последующего использования в игровых движках. Так что, это достойный экземпляр для изучения и использования в работе.
рис. 4 Редактор нормалей от Blend4Web
Вся магия заключена в панели с названием Blend4Web. Она хранит дополнительный инструментарий, поставляемый вместе с движком, но кое-что можно использовать и не для реал-тайм. Разумеется, перед этим нужно установить бесплатный SDKBlend4Web. Как это сделать — читайте на сайте разработчика.
Редактор нормалей позволяет кое-какие действия выполнять в автоматическом режиме с массивом вершин. В тоже время нет никаких проблем с редактированием одной конкретной. Чтобы не усложнять материал, я буду демонстрировать все это на примере того же куба со скошенными гранями.
Работа с редактором начинается с его активации (кнопка Activate). Основное действие происходит в режиме редактирования структуры объекта. На рисунке 4 как раз показан куб и его нормали, распространяющихся в стандартных направлениях, т.е. так, как расположил их сам Blender. В принципе, показ нормалей можно включить стандартным для Blenderспособом (панель Mesh Display). Но удобнее воспользоваться специальными опциями в панели Normal Editor. Кнопка Show Normals включает показ, а Size отвечает за длину отображения. Собственно, эти опции дублируют стандартные.
Итак, при включении функции Smooth скосы на ребрах куба становятся незаметными (см. рис. 1, левый крайний куб). Чтобы светотени создали нужный нам эффект, необходимо развернуть нормали вершин плоскостей куба строго перпендикулярно их основе, т.е. они должны «смотреть» параллельно нормали самой плоскости.
Это лучше всего сделать в автоматическом режиме. Выделяете каждую плоскость, нажимаете кнопку Face и вуаля!
рис. 5 а) оригинальный куб, б) куб с измененными нормалями, в) рендер варианта Б
Normal Editor позволяет сделать больше. Например, мне нужны четкие выпуклости скосов. Стандартно это делается добавлением новых ребер «жесткости». Ведь все вершины куба уже смотрят в нужных направлениях. Банально не хватает вершин. Можно сделать «финт ушами» — каждую нормаль подразделить ещё на несколько. Я не особо понимаю, как это происходит технически, но важно другое — буквально каждая вершина объекта может «смотреть» сразу в нескольких направлениях.
Ручное редактирование нормалей осуществляется несколькими способами:
Есть еще две полезные функции для редактирования: кнопка Restore (восстанавливает всё по умолчанию) и Copy/Paste для быстрого копирования координат с одной нормали на другую (увы, в режиме Split копирование не работает).
Вот и результат. Смотрите, что у меня вышло с такими «размноженными» нормалями. Напоминаю, что количество вершин не изменилось, всё те же 24 вертекса, всё тот же стандартный куб. А выглядит, как будто я минимум утроил количество ребер.
Конечно, работать с каждой нормалью — это ещё то удовольствие, несмотря на мощные инструменты редактирования в Normal Editor. Впрочем, для ленивых есть несколько автоматических решений. С одним из них (Face) я уже вас познакомил, но на панели редактора можно найти ещё две кнопки Tree и Foliage.
Названия очень многообещающие, но не думайте, что при нажатии на них вы получите идеальные деревья (tree) и листву (foliage)! Все, проще, они позволяют массово распространять нормали в определенных направлениях:
Вот как-то так. Спасибо разрабам Blend4Web за столь интересный инструмент!
Normals¶
The Normal Edit Modifier can be used to edit normals.
The Weighted Normal Modifier can be used to affect normals by various methods, including Face Strength (see below).
You can also copy normals from another mesh using Mesh Data Transfer ( operator or modifier ).
Mesh ‣ Normals ‣ Flip
This will reverse the normals direction of all selected faces. Note that this allows you to precisely control the direction (not the orientation, which is always perpendicular to the face) of your normals, as only the selected faces are flipped.
Recalculate¶
Mesh ‣ Normals ‣ Recalculate Outside and Mesh ‣ Normals ‣ Recalculate Inside
These tools will recalculate the normals of selected faces so that they point outside (respectively inside) the volume that the face belongs to. The volume does not need to be closed; inside and outside are determined by the angles with adjacent faces. This means that the face of interest must be adjacent to at least one non-coplanar other face. For example, with a Grid primitive, recalculating normals does not have a meaningful result.
Set from Faces¶
Mesh ‣ Normals ‣ Set from Faces
Set the custom normals at corners to be the same as the face normal that the corner is part of.
Rotate¶
Mesh ‣ Normals ‣ Rotate
Point to Target¶
Mesh ‣ Normals ‣ Point to Target
A target is set by the keys:
The mouse cursor M
The object origin O
The tool operation can be modified; if one of the following keys has been previously pressed:
All normals will point in the same direction: from the center of selected points to the target.
Each normal will be an interpolation between its original value and the direction to the target.
The normal directions are reversed from what was specified above.
Will reset the custom normals back to what they were when the operation started.
Merge¶
Mesh ‣ Normals ‣ Merge
Merge all of the normals at selected vertices, making one average normal for all of the faces.
Split¶
Mesh ‣ Normals ‣ Split
Split the normals at all selected vertices so that there are separate normals for each face, pointing in the same direction as those faces.
Средний¶
Mesh ‣ Normals ‣ Average
Average all of the normals in each fan of faces between sharp edges at a vertex.
Copy Vectors¶
Mesh ‣ Normals ‣ Copy Vectors
If a single normal is selected, copy it to an internal vector buffer.
Paste Vectors¶
Mesh ‣ Normals ‣ Paste Vectors
Replace the selected normals with the one in the internal vector buffer.
Smooth Vectors¶
Mesh ‣ Normals ‣ Smooth Vectors
Adjust the normals to bring them closer to their adjacent vertex normals.
Reset Vectors¶
Mesh ‣ Normals ‣ Reset Vectors
Put normals back the to default calculation of the normals.
Select by Face Strength¶
Mesh ‣ Normals ‣ Select by Face Strength
Another way to affect normals is to set a Face Strength on the faces of the model. The Face Strength can be either Weak, Medium, or Strong. The idea is that the Weighted Normal Modifier can be set to pay attention to the Face Strength as follows: When combining the normals that meet at a vertex, only the faces with the strongest Face Strength will contribute to the final value.
For example, if three faces meet at a vertex and have the face weights weak, medium, and strong, then only the normal associated with the strong face will be used to set the final result.
Use the submenu to pick one of Weak, Medium, or Strong. Then this tool selects those faces that have the chosen face strength.
Set Face Strength¶
Mesh ‣ Normals ‣ Set Face Strength
Use the submenu to pick one of Weak, Medium, or Strong. Then this tool changes the Face Strength of currently selected faces to the chosen face strength.
© Copyright : This page is licensed under a CC-BY-SA 4.0 Int. License. Обновлено: 12/29/2021.
























