3D фундамент. Структура современных цифровых материалов.

Цель данной статьи - описание устройства современных цифровых материалов в 3д графике. Часто встречается непонимание на уровне отдельных элементов, или невозможность настроить материал при смене версии софта, или в ином пакете 3д графики, или рендер-движка.

Предисловие. Эта статья написана более сжато, чем предыдущие. Было много замечаний, что статьи длинные, и занудные. Поэтому свойства и параметры, рассматриваются блочно. Если формат данной статьи более привлекателен - отметьте ее реакцией.

Иллюстрация свойств с приложенными к ним фрагментами материалов, позволит даже в новом пакете, найти нужные параметры, и настроить материал.

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

Для демонстрации свойств материалов будет использоваться связка 3ds max + corona render, как наиболее распространенная в сфере архивиза. Специфичные материалы или свойства, будут показаны в интерфейсах соответствующих программ, или движков.

Структура современного цифрового материала содержит в себе несколько основных блоков параметров, каждый из которых отвечает за свою группу свойств материала.

Основными свойствами являются:

  • Собственный цвет материала (Diffuse/Base color)
  • Металличность (Metalness)
  • Шероховатость/глянцевость (Roughness/Glossiness)
  • Индекс отражения/преломления (Index of reflection/ index of refraction)
  • Преломление света (Refraction)
  • Имитация неровностей (Bump)Смещение поверхности материала (Displace)
  • Подповерхностное рассеивание света (Subsurface scattering)
  • Рассеивание света в объеме материала (Volumetric scaterring)
  • Светопроницаемость (Translucent)
  • Непрозрачность (Opacity)
  • Самосвечение (Selfillumination)

Далее демонстрация каждого из свойств с картинкой. На картинке всегда будут два блока параметров, относящихся к свойству. Слева всегда Corona mtl, справа Vray mtl.

Это два самых распространенных материала, которые можно встретить в архивизе.

Бублик под лого, и деталь внутри лого почти всегда серые, от картинки к картинке будет изменяться только параметр материала логотипа целиком, или половинками, если надо показать разные степени параметра.

Для каждого свойства будут даваться небольшие комментарии, там где это необходимо. Напоминаю, что для уменьшения длины статьи, мы не рассматриваем каждый параметр. Если такая статья нужна - напишите в комментариях.

Собственный цвет материала (Diffuse/Base color)

Для короны видим еще параметр "вес", это множитель, который позволяет регулировать общий выход информации с канала. Чаще всего его используют для регулировки альбедо.

Металличность (Metalness)

То, насколько материал ведет себя как металл при отражении света. Обычно, либо 1, либо ноль (как в Короне). То есть без промежуточных значений. Но, в определенных случаях может быть и чем то между.

Внимание! При высоких значениях шероховатости - может быть визуально не выражен.

Шероховатость/глянцевость (Roughness/Glossiness)

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

Индекс отражения/преломления (Index of reflection/ index of refraction)

Показан на примере преломления. Более высокие параметры, делают отражения/преломления более выраженными. При 1.0 на индексе преломления, искажений при преломлении не будет вовсе.

Может быть общим (что правильнее с точки зрения физики), или отдельно настраиваемым, как в вирее, что гибче под ряд ситуаций.

Опосредованно, именно индекс отражений, определяет силу рефлективного отражения, и отделяет его от диффузного. Подробнее можно посмотреть в моей статье.

Так же, в вирее сила отражения отвязана в отдельный слот. что позволяет крутить его под более специфичные задачи.

Преломление света (Refraction)

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

Имитация неровностей (Bump)

Практически безальтернативно использует в себе не чистый цвет с канала, а текстуру, растровую, или процедурную. Имитирует неровности, без фактического смещения. Быстрая технология, массово применимая в 3д графике. При использовании карт, чувствующих геометрию, позволяет имитировать, например, фаски.

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

Смещение поверхности материала (Displace)

Так же, почти всегда использует в канале текстуру, за редким исключением. светлота текстуры определяет как будет смещена поверхность, параметры от среднесерого к черному работают с приближением к параметру "минимум" в материале, те что светлее приближают смещение к "максимуму". Общая сила смещения задается значениями минимума и максимума.

Подповерхностное рассеивание света (Subsurface scattering)

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

Рассеивание света в объеме материала (Volumetric scaterring)

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

Светопроницаемость (Translucent)

Позволяет имитировать пропускание света объектом, при оптической непрозрачности. Чаще всего используется для объектов типа абажуров, листвы, травы, где в связке с геометрией, позволяет подчеркнуть нужное поведение света. Почти всегда доступен только с опцией упрощенной работы преломления (thinshell/thinwall) иначе был бы копией рефракта при максимальной шероховатости.

Непрозрачность (Opacity)

Параметр управляет непрозрачностью объекта. Не путать с преломлением. Тут нет никаких искажений при прохождении света через объект.

Часто используется с процедурными картами, типа faloff , для связи с геометрией объекта (тюли, мягкие лампочки)

Самосвечение (Selfillumination)

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

В статье отсутствуют многие специфичные параметры, наличие которых меняется от пакета к пакету. С ними это снова была бы простыня.

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

Пример структуры материала в редакторе Блендер:

Пример окна экспорта текстур из SP в Unreal:

Окно настройки материалов на Sketchfab (веб движок)

90% названий вам теперь известно, и для чего они служат -тоже.

В повседневной работе материалы не обязывают настраивать в них все эти возможные параметры, и важными для передачи свойств являются 5-8 параметров.

Надеюсь, тема материалов стала вам ближе. Любые мысли, вопросы, предложения - вы можете написать в комментариях к статье. Я их читаю.

Будьте профессионалами- мы поможем.

Комментарии (3)

0
vladimir.drobzhev90
Темы идут в порядке понижения уровня знаний аудитории? Инновационно, свежо.
0
Holy3D
идеальная бизнес модель: раз в год пересказываешь один и тот же мануал и вуаля - новые клиенты
0
Holy3D
«Будьте профессионалами - мы поможем» - смелое заявление. Оценить профессиональный уровень помощников приглашаю к себе в тему форумаhttps://3ddd.ru/forum/thread/show/prozharka-3d-urokov-mestnykh-3dkouchei-ot-nepovtorimogo-holy3d  Там в шапке есть разбор некоторых уроков от Олега и помощницы.
Что касается конкретно этой статьи, то вот её базовые ошибки, которые ломают любое понимание о современных материалах:
1) Свалили в кучу некоторые основные свойства PBR-based шейдеров и «классических». По итогу вышло ни рыба ни мясо. А если учесть, что это по факту неточный (о неточностях далее) пересказ стандартных мануалов для людей с нулевым уровнем знаний, то подобная неточная информация (читай - вредная) приведёт только к каше в голове новичка.
2) Неграмотное описание параметров, которое приведёт к каше в голове:
а) Diffuse/Base color - это не «собственный цвет материала» (такое понятие используют неучи, которые не понимают, как работает этот параметр), а АЛЬБЕДО, если это диэлектрик, или ЦВЕТ ОТРАЖЕНИЯ, если это проводник (металл).
Альбедо - это цвет в кодировке RGB рендера, который отражается после попадания белого света на поверхность. Например, красный пластик: падает белый свет (R=1, G=1, B=1). Материал сильно поглощает зелёный и синий, слабо - красный. На выходе получаем (R=0.6, G=0.03, B=0.03). Это и есть альбедо.
Цвет отражения (по ПРОФЕССИОНАЛЬНОМУ: спектральный коэффициент Френеля) - это НЕ АЛЬБЕДО и тем более НЕ СОБСТВЕННЫЙ ЦВЕТ, а процент отражения для каждой длины волны (R, G, B каналов). Например: золото (1.0, 0.71, 0.29), медь (0.95, 0.64, 0.54).
То есть Diffuse/Base color - это один параметр на два типа материала, и он работает по-разному в зависимости от коэффициента Metallness, о котором далее совершенно неграмотно написано в статье.
б) Metallness - ШТА???: «То, насколько материал ведет себя как металл при отражении света» - а как ведёт себя металл при отражении света? Блестит? ))))) А лак не блестит? Поржал с этого момента. Автор статьи не понимает, как работает этот параметр, и решил дать определение в духе «Вода - это мокрая жидкость» )))). Ржу до сих пор. Всё понимание работы Metallness уже лежит в принципе работы Diffuse/Base color, и, регулируя этот коэффициент, вы просто меняете баланс на весах. Всё. Более того, при активации Metal режима вам становятся недоступны многие другие свойства, которых физически нет в природе у металлов. Например, Translucency. Но в статье этого нет, и это тоже запутает новичка, когда он обнаружит, что эти параметры деактивируются.