Значения карты нормалей с экспортером блендера ThreeJS GLTF - PullRequest
0 голосов
/ 21 января 2019

Если я установлю значение ползунка «Normal» в Blender в «Geometry» для текстуры на 2.0. Я вижу нормальное значение X: 1, Y: -1, когда смотрю на объект в журнале консоли. Я что-то упустил?

Я использую ThreeJS R97.

1 Ответ

0 голосов
/ 21 января 2019

Из вашего описания "Ползунка нормалей под геометрией", я предполагаю, что вы говорите о Blender 2.79x или более ранней версии, о встроенном рендере Blender, настройках материала, где этот слайдер контролирует силу применяемой карты нормалей.

Итак, пару вещей, о которых можно поговорить здесь. Во-первых, экспортер glTF официально не поддерживает встроенные материалы Blender Render, и этот слайдер не подключен, как вы уже обнаружили. Усилия разработчиков для экспортера теперь сосредоточены на аддоне под названием glTF-Blender-IO , который работает в Blender 2.79, но на самом деле поставляется предварительно установленным в Blender 2.80 Beta.

Этот аддон работает с движками Cycles и Eevee, использующими узел «Principled BSDF», опционально в сочетании с несколькими вспомогательными узлами, такими как «Normal Map». Итак, экспортер glTF ожидает найти карту нормалей, подключенную вот так:

Normal Map Hookup in Blender 2.79x

Имейте в виду, что формат glTF не содержит сами узлы, но экспортер поймет это соединение и запишет карту нормалей в файл glTF, а также, при желании, базовый цвет, металлик, шероховатость и эмиссию. карты (через другой отдельный узел, необходимый для эмиссии).

Но в этом плане есть небольшая складка, похоже, сила еще не подключена. Узел «Карта нормалей» Блендера содержит параметр «сила», а формат glTF содержит соответствующий параметр с именем normalTexture.scale, который делает то же самое, но, похоже, экспортер не копирует значение из одного места в другое. Я подал вопрос № 241 об этом, и, надеюсь, со временем это будет исправлено.

В ThreeJS значения X: 1, Y: -1 являются преднамеренными для карты нормалей юнитов. Три карты нормалей используют соглашение Y, отличное от формата glTF, поэтому Y намеренно переворачивается при загрузке карты норм из glTF. Таким образом, чтобы удвоить силу, вы должны установить X: 2, Y: -2. На данный момент, похоже, что присвоение этого в коде (или ручное редактирование glTF) являются единственными опциями, пока экспортер не добавит функцию для копирования отсутствующего параметра прочности.

...