Как исправить вывернутые нормали в blender

Время на прочтение
3 мин

Количество просмотров 48K

Blender это замечательный бесплатный 3d пакет, который делает возможным и доступным осуществление гигантского количества проектов, и, как человек, прошедший путь от абсолютного новичка в 3d до преподавателя данной программы в учебном центре “Специалист” в Москве, я могу поделиться несколькими типами, которые помогут преодолеть несколько несложных, но каверзных моментов, которые хоть и очень просты, но далеко не очевидны, и могут заставить просидеть несколько часов в поиске решения проблемы.

Перевод программы и подсказок

Перевод программы и подсказок – Blender, как и почти все программы является англоязычной, но в настройках (preferences) мы можем сделать его интерфейс русскоязычным. Переводить его полностью на русский язык я бы не советовал, т.к. названия всех терминов и команд почти необходимо знать на английском языке для дальнейшего развития, и, так или иначе, много из них заимствовано великим и могучим русским языком и используется всеми и повсеместно (нормали, фейсы, вертексы и т.д.). А вот перевод подсказок действительно может упростить процесс входа в программу и снять много вопросов в процессе их появления. Окошко с подсказкой возникает при наведении курсора мыши на любой элемент blender.

  • Для того чтобы активировать подсказки, если они не работают, нужно зайти в меню Edit-Preferences-Interface. Поставить галочку напротив Tooltips.

  • Для активизации перевода подсказок в том же разделе открываем выпадающее меню Translation, ставим русский язык, и галочку напротив Affect Tooltips.

Забагивание области просмотра

Следующая проблема с которой я постоянно сталкивался это забагивание области просмотра – при попытке панорамировать видприблизитьсяотдалиться от объекта, blender упорно отказывается это делать, точнее делает это очень медленно . Тут помогает функция Frame, которая перезахватывает выбранный объект во вьюпорте и данная проблема устраняется.

  • Находится эта функция в меню View-Frame selected.

Clipping

Некст проблема это clipping – при попытке работать с объектом на близком расстоянии область обрезает часть нашего объекта, и мешает нам работать.

  • устраняется заходом в боковое меню нажатием кнопки N, и во вкладке view в выпадающем меню view, уменьшаем значение Clip Start (Например 0,001)

Нормали

Следующая проблема это нормали – будь то незнание того – что это? или незнание того – как их привести в правильное положение. Проблемы с нормалями возникают например при попытке запечь карты деформации, во время скульптинга, при попытке нажать Shade smooth и тд.

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

  • Как мы можем видеть на данном изображении – все нормали объекта, кроме трех выделенных, повернуты наружу, а три выделенные – внутрь. При обычном режиме затенения Shade flat – этого не видно, но если я включу режим затенения shade smooth, то результат будет совсем иным.

  • Проверить направление нормалей своего объекта я могу перейдя в edit mode, и в выпадающем меню overlays поставить галочку напротив Face orientation . Тогда все нормали повернутые наружу будут отображаться синим цветом, а направленные внутрь – красным. В этом же меню Overlays я могу включить отображение нормалей как векторов.

  • Развернуть нормали нам помогут функции Mesh-Normals-Flip (или recalculate outside)

  • Flip – развернет выделенные полигоны.

  • Также мы можем выделить все полигоны объекта (шорткат А) и нажать Recalculate outside чтобы blender автоматически пересчитал все наши полигоны наружу.

  • За направлением нормалей лучше следить.

Двойные вертексы

Двойные вертексы – часто в процессе моделирования и оперирования командой Extrude могут создаться вертексы, которые стоят друг в друге и будут портить нашу топологию, это может нам аукнуться на этапах UV развертки, создания рига и тд. Чтобы избежать этого, на промежуточных этапах работы можно выделять всю свою модель в режиме работы с вершинами и нажимать Mesh-clean up-merge by distance. Двойные вертексы будут объединяться.

Карты нормалей

Карты нормалей запеченные в других программах (substance painter, Zbrush) дают странный результат в Blender .

  • Проблема в том что карты нормалей, в вышеперечисленных, и не только, программах, запекаются c использованием DirectX, а blender работает с OpenGL. Если говорить простым языком то нам нужно развернуть зеленый канал на карте нормалей. Делается это следующим образом:

Надеюсь, что данный пост поможет людям, осваивающим блендер, проскочить несколько часов поиска решения проблем!

V К

15.04.2022

1) invert избыточна, достаточно сделать 1-G
2) а что за нормальки с перевёрнутым красным каналом? Обычно directX и у них только зелёный перевёрнут

Ответить

Развернуть ветку

Every 3D

15.04.2022


Автор

В мыслях был ещё и красный канал… По факту да, инвертировать нужно только зелёный. Статья подправлена. За уточнения спасибо!

Ответить

Развернуть ветку

V К

15.04.2022

Так… похоже, у нас путаница. И ты не понимаешь, как работать с векторами.
1. Конверсия directX ←→ openGL делается через переворот только зелёного канала.
2. А вот инверсия выпуклого на вогнутое чисто по карте нормалей делается как RGB→XYZ, а потом XYZ*(-1 -1 1) и обратно → RGB
Инверсия — это не то же самое, что разворот вектора. Инверсия 0,8 это 0,2. Разворот вектора 0,8 это -0,8
3. Инверсия нормалей уже в векторах (например после бампа) делается поворотом векторов на 180° вокруг нормалей поверхности.

Ответить

Развернуть ветку

V К

15.04.2022

1. Я просто вчера встретил ноду инверсии и с красным тоже, но хз, где такие применяются
2. Так-то блендер позволяет печь нормали с любой ориентацией осей

Ответить

Развернуть ветку

V К

15.04.2022

Есть ещё два варианта, но я вот честно не знаю, что ресурсозатратнее, делать линейную интерполяцию, или делать сначала separate потом combine

Ответить

Развернуть ветку

Teo

15.04.2022

Хватает инвертирования зеленого канала в RGB Curves.)

Ответить

Развернуть ветку

Алексей Ступников

15.04.2022

Сейчас будет немного тупой вопрос: а если инвертировать цвета карты нормалей, то она не инвертируется?

Ответить

Развернуть ветку

Аккаунт удален

15.04.2022

Комментарий недоступен

Ответить

Развернуть ветку

Аккаунт удален

15.04.2022

Комментарий недоступен

Ответить

Развернуть ветку

Алексей Ступников

15.04.2022

Это я знаю. Каждый канал – одна из осей. Просто хочу попробовать на практике это

Ответить

Развернуть ветку

V К

15.04.2022

Чтобы поменять выпуклое на вогнутое, нужно повернуть вектор из карты нормали на 180° вокруг нормали поверхности

Ответить

Развернуть ветку

Viktor Kopeykin

15.04.2022

Вот это костыль. “Очень просто” это powerscale поставить на -1, вместо 1.

Ответить

Развернуть ветку

V К

15.04.2022

Ты сейчас вычитание и возведение в степень с умножением перепутал…

Ответить

Развернуть ветку

V К

15.04.2022

Математика одна, независимо от софта.
Или power/scale имеется в виду ползунок силы нормальки? Это другое.
В Блендере отрицательный скейл не прокатывает

Ответить

Развернуть ветку

Viktor Kopeykin

15.04.2022

Да, ползунок. Просто называется так сила нормали в софте, где я работаю.

Ответить

Развернуть ветку

V К

15.04.2022

Тогда стоит уточнять софт. Ползунки по-разному могут работать.

Ответить

Развернуть ветку

V К

15.04.2022

работает, но несколько избыточно

Ответить

Развернуть ветку

V К

15.04.2022

Затратность определяется не количеством нодов, а количеством и сложностью операций итоговых. Суммирование и вычитание проще умножения. Разделение и слияние вектора хз… Наверное простое

Ответить

Развернуть ветку

Konstantin Tamch

15.04.2022

Ну тогда проще в фотошопе заранее инвертировать если так боритесь за затратность)

Ответить

Развернуть ветку

V К

15.04.2022

Да. Но фотошоп не умеет в отрицательные цвета, насколько я знаю. Так что dx→ogl сделать можно, а вот вогнутое на выпуклое сменить нет.

Ответить

Развернуть ветку

Tabletkin

15.04.2022

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

Ответить

Развернуть ветку

CyberDog

16.06.2022

Так, в моем случае сработало только инвертирование и зеленого и красного каналов. Я не понял почему…
UPD. Или даже только красного

Ответить

Развернуть ветку

Читать все 28 комментариев

правильное направление нормалей

  • В этой теме 3 ответа, 3 участника, последнее обновление 1 год, 5 месяцев назад сделано Артем Слаква.

Просмотр 4 сообщений – с 1 по 4 (из 4 всего)

  • Автор

    Сообщения

  • Есть вероятность, что при рендере ничего видно не будет, но все равно с нормалями нужно разобраться.

    Есть два способа: Ctrl + N (как ты уже делал) и вручную Flip Direction.

    Модификаторы можешь отключить на время выворачивания нормалей. В итоге все должно быть хорошо без каких либо подразделений.

    21.12.2021 в 00:57

    #37384

    как выровнять нормали в версии старше 2.8 ? работаю в 2.9 и там Ctrl + N это «создать новый файл»

    21.12.2021 в 00:58

    #37385

    Mesh > Normals (Alt + N).

  • Автор

    Сообщения

Просмотр 4 сообщений – с 1 по 4 (из 4 всего)

  • Форум «Моделирование и скульптинг» закрыт для новых тем и ответов.

Авторизация

blender course

cycles-book

eevee-book

Рубрики

  • Анимация и риггинг
  • Загрузки
  • Материалы и текстуры
  • Моделирование и скульптинг
  • Новости и обзоры
  • Основы Blender
  • Рендеринг и освещение
  • Симуляция и частицы
  • Скриптинг на Python
  • Создание игр в Blender

mod-book

freestyle-book

3d-printing-with-blender

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



Ученик

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



2 года назад

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

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

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

Знаток

(486)


2 года назад

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

$begingroup$

I need all my normals to be oriented in the same angle, but as you can see from my screenshot, the outer edge are turned one way and the inner edge are 90º offset, so I’m just wondering if there’s a way to manually turn them?

enter image description here

asked Dec 18, 2016 at 4:02

Danial's user avatar

$endgroup$

9

$begingroup$

By definition the face normals are perpendicular to the face and can’t be adjusted to a specific rotation.

To alter the way the hair is emitted, you want to use something other than the normals to determine the initial direction, you can adjust this in the particle settings.

Enable the advanced option which makes the velocity panel available for hair particles. Set the normal value to 0.0 and change the emitter object values to the direction you want the hair to go.

particle options

answered Dec 19, 2016 at 11:35

sambler's user avatar

samblersambler

54.7k3 gold badges52 silver badges186 bronze badges

$endgroup$

$begingroup$

You can use a different, invisible, flat panel to act as hair emitter

answered Dec 18, 2016 at 10:49

josh sanfelici's user avatar

josh sanfelicijosh sanfelici

24.6k2 gold badges19 silver badges38 bronze badges

$endgroup$

$begingroup$

The darker parts seem to have inward facing normals.
With these parts selected hit Ctrl+N. If that doesn’t fix them Shift+Ctrl+N probably will.

answered Mar 1, 2019 at 0:27

魔大农's user avatar

$endgroup$

You must log in to answer this question.

Not the answer you’re looking for? Browse other questions tagged

.

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