Как исправить вывернутые грани блендер

#статьи

  • 31 май 2022

  • 0

Разбираем ситуации, с которыми сталкивается большинство пользователей программы.

Иллюстрация: Nakaridore / Freepik / Pngwing / Annie для Skillbox Media

Леон Балбери

Считает игры произведениями искусства и старается донести эту идею до широких масс. В свободное время стримит, рисует и часами зависает в фоторежимах.

Во время работы в Blender зачастую встречаются проблемы «на ровном месте». В лучшем случае они существенно замедляют процесс моделирования, в худшем — приводят к откату на предыдущую стадию проекта или к полной его переделке. Подобные ситуации случаются со всеми, но именно новичков они приводят в замешательство, так как опытные пользователи уже знают, как их решить. В этом материале мы разбираем несколько распространённых проблем в Blender и предлагаем способы их устранения.


Во время работы над проектом пользователь рано или поздно заметит, что приближение и перемещение по осям с помощью колёсика мыши не срабатывает. Угол обзора достигает определённой точки и блокируется.

На примере показано, что камера приближается к объекту только на определённое расстояние. При этом вращение и отдаление работают как обычно

Причина. Камера обзора во вьюпорте привязана к условной точке, вокруг которой она двигается по принципу поводка. Когда пользователь крутит колёсико мыши и перемещается в пространстве, в какой-то момент он может приблизиться к этой точке вплотную. После этого блокируется не только масштабирование, но и перемещение по осям. В итоге камера будет вращаться только вокруг объекта. Попытка переключения на другой объект не сбросит привязку камеры — она по‑прежнему будет лишь вращаться вокруг нового объекта, а приближение и перемещение останутся заблокированными.

При переключении на камеру увеличение всё равно остаётся ограниченным, а вращение работает

Решение. Выделяем объект и нажимаем клавишу Numpad . (Del) — это зафиксирует камеру на объекте, и приближение с перемещением по осям заработают в обычном режиме.

Примечание

Если номерной клавиатуры нет (как в случае с ноутбуками), существует несколько универсальных решений:

  • В меню Правка (Edit) — Настройки (Preferences) — Ввод (Input) отметить галочкой пункт Эмулировать цифровую панель Numpad (Emulate Numpad). После этого основные цифровые клавиши заработают так же, как на Numpad-клавиатуре.
  • Подключить экранную клавиатуру. Эта функция находится в параметрах Windows в разделе Специальные возможности — Клавиатура Использовать экранную клавиатуру. По умолчанию панель Numpad не отображается, но её можно включить в параметрах (кнопка расположена в правом нижнем углу экранной клавиатуры). По аналогичному принципу подключается ассистивная клавиатура на macOS.
  • Также на конкретное действие можно назначить новую клавишу: Правка (Edit) — Настройки (Preferences) — Раскладка (Keymap) — 3D вид (3D View) — 3D View (Global) Вписать выделенное (View Selected).

Пункт в настройках раскладки, где можно заменить клавишу Numpad. (Del)
Скриншот: Леон Балбери для Skillbox Media


Пользователь обнаруживает проблему во время последующих корректировок модели или непосредственно при создании UV-развёртки.

Причина. Подобные «сюрпризы» возникают из-за специфики экструдирования в Blender при отмене операции. Если пользователь начал процесс экструдирования Вершин (Vertices), Рёбер (Edges) или Граней (Faces) с помощью клавиши E и по привычке отменил действие, нажав ПКМ/Esc — операция всё равно считается выполненной. Продублированную геометрию можно увидеть, если включить отображение сетки во вьюпорте.

Пример сохранения экструдированного полигона после отмены операции. Лишнюю геометрию можно заметить по точкам, обозначающим наличие полигона/грани в Режиме редактирования (Edit Mode), — они выделены красным

Решение. Помимо удаления лишних элементов вручную, можно отменить операцию через CTRL + Z или зайти в меню Правка (Edit), нажать Отменить по истории…(Undo History…) и указать, какую именно операцию нужно отменить. Если лишние грани обнаружены слишком поздно, выделяем объект (А), затем в Режиме редактирования (Edit Mode) заходим во вкладку Меш (Mesh) — Очистка (Merge) — Объединить по расстоянию (Merge by Distance). Данная операция убирает лишнюю геометрию.

Удаление лишней геометрии с помощью инструмента «Объединить по расстоянию» (Merge by Distance)

Примечание

Операция Объединить по расстоянию (Merge by Distance) незаменима при удалении лишних вершин в объектах со сложной геометрией. Если её применить, в левом нижнем углу появится окно настроек; с ними можно экспериментировать, постепенно увеличивая значение. Главное — не переборщить, иначе пострадает качество модели.


На примере видно, что при использовании Фаски (Bevel) углы объекта срезаются симметрично, но угол составляет менее 45॰

Причина. В отличие от стандартных мешей, у отредактированных объектов параметры масштаба относительно каждой оси могут отличаться. Из-за того, что срез на гранях рассчитывается исходя из этих параметров, угол также меняется.

Объект, грани которого имеют разные показатели Масштаба (Scale) относительно осей
Скриншот: Леон Балбери для Skillbox Media

Решение. Параметры объекта нужно привести к единому знаменателю. Переходим в Объектный режим (Object Mode) и нажимаем Ctrl + A; во всплывающем меню выбираем Вращение и масштаб (Rotation & Scale). Таким образом, произойдёт сброс параметров, после чего срез с каждой стороны будет под углом в 45॰.

Результат после приведения масштабирования к общему знаменателю

Отображение объекта в режимах просмотра материалов и сплошного типа затенения
Коллаж: Леон Балбери для Skillbox Media

Даже если модель корректно отображается в режиме просмотра материалов, проблему выдают разные дефекты шейдеров, которые периодически возникают при освещении и текстурировании. Отсутствие нормалей можно заметить не только после экспорта модели в другую программу, но и в самом вьюпорте, если выбрать Сплошной тип затенения (Solid) — значок с белым кругом в правой верхней части окна, — а затем включить Полупрозрачность (X‑Ray) при помощи Alt + Z.

Примечание

Также можно зайти в настройки типа затенения и отметить галочкой опцию Не рисовать задние грани (Backface Culling). В этом случае пустые участки будут более заметными.

Отображение дефектов модели после отметки «Не рисовать задние грани» (Backface Culling)
Скриншот: Леон Балбери для Skillbox Media

Причина. При сборке модели отдельные грани выстроены с изнаночной стороны.

Решение. Выбираем Сплошной тип затенения (Solid) во вьюпорте, открываем настройки Наложения вьюпорта (Overlays) и в опциях геометрии выставляем галочку напротив пункта Ориентация грани (Face Orientation). Теперь все вывернутые грани отмечены красным. Выделяем их в режиме редактирования, жмём Alt + N и выбираем Отразить (Flip). Теперь, когда на модели не осталось ни одного красного участка, можно смело экспортировать её в другие программы.

Подключение Ориентации грани (Face Orientation) и отображение объекта во вьюпорте с этим параметром
Скриншот: Леон Балбери для Skillbox Media

Примечание

Важно знать, что меши по типу Плоскости (Plane) изначально состоят из одной нормали. Поэтому во время создания объектов вроде лепестков, травинок, ремешков, прядей волос (для низкополигональных персонажей) помните, что у них всё равно существует изнанка. Следовательно, они будут отображаться лишь с одного ракурса (например, в Unreal Engine). Чтобы объект стал двусторонним, используйте модификатор Объёмность (Solidify). Если при создании элементов окружения важна экономия полигонов, моделируйте плоскости таким образом, чтобы их очертания отображались с каждого ракурса.


Слева рендер модели в Blender, справа — эта же модель, открытая в программе для просмотра 3D‑объектов в Windows. Красным отмечены дефекты после экспорта
Скриншот: Леон Балбери для Skillbox Media

Причина. Часто эти изъяны возникают из-за топологии. Как правило, сетка модели состоит из треугольников и четырёхугольников, но иногда встречаются и многоугольники, известные как «нгоны» (от англ. N-gon). С последними не возникает проблем в Blender, но другие программы, в том числе игровые движки, плохо воспринимают подобную геометрию. На примере выше сетку из четырёхугольников разрезали инструментом Нож (Knife). В результате образовались многоугольники, из-за которых модель может некорректно отображаться в сторонних программах.

Решение. Разбиваем геометрию на проблемных участках. Для этого переходим в Режим редактирования (Edit Mode), выделяем многоугольные грани и нажимаем Ctrl + T. После этого нгоны превратятся в скопления треугольников.

Слева модель в Blender с исправленной топологией, справа — отображение новой итерации в программе для просмотра 3D‑объектов в Windows
Скриншот: Леон Балбери для Skillbox Media

Рассмотренные ситуации подтверждают тот факт, что в Blender существует немало «подводных камней». И часто виной тому не ошибки пользователей, а их неосведомлённость в специфике некоторых операций. Зная особенности программы, начинающий 3D-художник сможет потратить время не на поиск и решение проблем, а на совершенствование своих навыков.

Научитесь: Профессия 3D-художник
Узнать больше

While the question is rather old and solved, it’s still an important and underestimated topic leading to other questions coming up, so i would like to add one approach i did not see in the available answers here, for completeness sake.

Normals (or the orientation of the faces) in Blender can be made visible in 2 ways, one way would be with little lines pointing outward from the middle of a face, specifically the face-normals, while it gives us the information we may need, it can be hard to see wrong directed normals on complex geometry and long stretched faces, if you are a bit zoomed out.

enter image description here

Here i would suggest the Face Orientation to help get an easier overview on where there are faces in the wrong direction. Front and back of the face become blue and red respectively to have a strong contrast and allow better visual identification.

enter image description here

While it is easier to spot with the Face Orientation it does not replace the Normals as those i compared were only the Face-Normals.
But something that happens often is that we work on geometry and apply subdivision surface modifiers to name one that makes most obvious problems with wrong Normals, just to then have to find out that a face got turned for whatever reason.

So i would like to suggest to switch on Face Orientation at least once before giving up on surface problems, most likely if it turns out to be the Normals, the solution is underestimated easy.

Be it with recalculating Shift+N to let Blender figure out what’s in- and outside, or by selecting the wrong ones manually and flipping them with Alt+N selecting “Flip”. One thing to keep in mind though, both functions need you to select the faces you want to affect!

Fixing inverted faces/meshes in Blender 2.8

In newer versions of Blender the previously available Tool Shelf buttons Flip Direction and Recalculate, typically used to flip inverted surfaces that made meshes appear inside-out, have been moved to the main Mesh menu upper-left of the 3D View. As the option is now context sensitive it only appears as a menu option in Edit Mode.

Design note: the Mesh menu is specific to Edit Mode and does not appear unless that particular editing context is active.

Flip Selected Faces

To access the option and/or correct an inside-out or inverted face, first select the errant mesh element in Edit Mode [1] (using vertex, edge or face) and from the Mesh menu upper-left click Normals [2] then Flip [3] from the options that appear – Mesh » Normals » Flip. Alternatively use Alt + N to access the Normals context menu then select Flip. The highlighted inverted face/s will immediately invert based on their current orientation.

Design note: when selecting errant faces using vertices or edges make sure all component elements are included to the degree that the inverted faces highlight.

Meshes or faces that appear inside out or inverted are fixed from the 3D Views 'Mesh' menu
The option to flip or invert faces [1] is an Edit Mode option only (accessible only when editing meshes), click Mesh » Normals » Flip [2 & 3] with an individual face or group selected.

Recalculate Faces

As an alternative to selectively inverting faces, or re-orientating a large mixed selection so everything points in one direction,  inwards or outwards, use Recalculate Outside (Shift + N) or Recalculate Inside (Shift + Ctrl + N) options. To do this and force the orientation in one direction or the other, in Edit Mode select the entire mesh (A) and access the Mesh menu. Here select Normals » Recalculate Outside to flip faces/selections outwards, or Normals » Recalculate Inside to invert selections inwards – Mesh » Normals » Recalculate Outside/Inside.

Design note: in previous versions of Blender Recalculate tended to orientate faces randomly depending on the predominance of inwards or outwards facing surfaces prior to use. For Blender 2.8+ this is no longer the case, Recalculate Inwards and Recalculate Outwards forceably re-orientate selections based on the option selected, either in or out but not both.

IF faces are randomly inverted use Recalculate to flip everything in one direction
For instances where surfaces are randomly facing one way or the other [4], or there are too many to select and manually process, use Recalculate Inwards/Outwards [5] to force everything to face the same direction, in or out, regardless – make a selection (individual, group or all) then click the Mesh menu, Normals then Recalculate Inwards/Outwards.

Face Orientation

To assist determining which way a face might be pointing, especially if Backface Culling is not disabled in Viewport Overlays or Viewport Shading options (depending on the viewport display mode) or a given materials Settings properties, Blender 2.8+ includes an option to colour tint faces based on their orientation, RED for surfaces pointing inwards and BLUE for those pointing outwards, making it much easier to see at a glance what’s going on, which then allows for individual faces to be flipped or recalculated as needed. To use, click the Overlays button upper-right of the 3D View [6] and from the menu select Face Orientation [7] – Overlays » Face Orientation. Everything will immediately tint blue/red based on their orientation. To disable, repeat, select Overlays » Face Orientation.

Design note: if X-Ray (Alt + Z) is active for any of the Viewport Shading modes, Wireframe, Solid etc., Face Orientation won’t work.

Backface Culling is off
Face Orientation used to determined which way faces point
If Backface Culling is disabled (off) it can be difficult to determine which way a given surfaces is pointing because both front and back of the mesh are the same. In this situation using the Overlays [6] setting Face Orientation [7] can help as it tints surfaces based on their orientation, inwards or outwards.

Степан Котельников



Ученик

(98),
на голосовании



2 года назад

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

Голосование за лучший ответ

Ольга Сазикова

Знаток

(486)


2 года назад

Работайте всегда вот в этом режиме, он на этапе моделирования уже позволит избежать ошибок, а если какие-то косяки появяться, то их очень быстро можно устранить, в режиме редактирования выделяете, ALT+N затем Flip

Добавить комментарий