Если модель отображается чёрной, дело обычно в этом
Нормали вершин сообщают рендереру, в какую сторону обращена поверхность. Без них освещение рассчитать невозможно, и поверхность выходит глухо-чёрной, равномерно серой или резко гранёной — в зависимости от того, насколько снисходителен рендерер.
Отсутствие нормалей встречается сплошь и рядом. Файлы STL нормали граней всё же хранят, но многие экспортёры записывают их нулями. Файлы OBJ часто опускают их полностью. А немало экспортёров glTF пропускают их в расчёте на то, что загрузчик сам их построит, — одни загрузчики так и делают, другие нет.
Операции
Проверка сообщает по каждому мешу, есть ли нормали, касательные и UV-координаты и индексирована ли геометрия. Начните отсюда.
Гладкие нормали усредняют нормали всех граней, сходящихся в вершине, что даёт непрерывное затенение на криволинейных поверхностях. Именно это нужно для органических форм и всего, что должно выглядеть скруглённым.
Плоские нормали дают каждому треугольнику собственную нормаль: каждая грань затеняется независимо, и фаски видны. Это верный выбор для деталей механической обработки, стилистики low-poly и любой действительно гранёной геометрии. Учтите, что для этого приходится расщеплять общие вершины, поэтому их число вырастает.
Инвертировать нормали разворачивает каждую нормаль и меняет порядок обхода вершин треугольников. Это лекарство для модели, которая выглядит освещённой изнутри или исчезает при включённом отсечении задних граней, — обычно виной тому зеркальное преобразование где-то выше по конвейеру.
Создать касательные вычисляет векторы касательных, которых требует наложение карт нормалей.
Удалить нормали убирает их полностью — иногда это нужно, чтобы следующий инструмент построил свои собственные.
Почему карта нормалей ничего не даёт
Это самая частая жалоба на освещение, и ответ почти всегда один — касательные.
Карта нормалей хранит направления в касательном пространстве: система координат задаётся для каждой вершины нормалью поверхности и направлением, вдоль которого текстура ложится на эту поверхность. Без векторов касательных нет и системы, в которой карту можно истолковать. Одни рендереры вычисляют касательные на лету при загрузке, другие попросту игнорируют карту и освещают поверхность так, будто она гладкая.
Инструмент помечает любой меш, которому назначена карта нормалей и у которого есть UV-координаты, но нет атрибута касательных: такое сочетание — гарантированная проблема по меньшей мере в части рендереров, и оно остаётся невидимым, пока его не начнёшь искать.
Для построения касательных нужны и набор UV, и индексный буфер. Меши, где нет хотя бы одного из них, отмечаются как пропущенные, а не отбрасываются молча.
Посмотрите на результат
В предпросмотре есть режим визуализации нормалей: каждая поверхность окрашивается по направлению, в которое она смотрит. Гладкие поверхности дают плавные цветовые градиенты, плоские — резко очерченные цветовые пятна, вывернутые нормали — инвертированные цвета. Читается это куда быстрее, чем попытка судить по освещению.
Конфиденциальность
Всё выполняется в вашем браузере. Ничего не загружается на сервер.
Tiny Online Tools







