Maxwell Render: Редактор материалов, 3-я часть

Редактор материалов

Здравствуйте, меня зовут Павел, и я представляю третью статью о MaxwellRender, в которой подробно распишу назначение каждого параметра редактора материалов. 
 
Так как представление материалов в MaxwellRender сильно отличается от устройства материалов в biased рендерах, и прежде чем расписывать настройки каждого элемента редактора материалов, принято объяснить пользователю, почему различные материалы выглядят такими, какими есть (отражающие, преломляющие, просвечивающиеся). В дальнейшем это поможет легче разобраться в устройстве материалов. 
 
Для начала вспомним, что все, что мы видим, все предметы, всё наше окружение - это отраженный свет. И цвета окружающих предметов, их прозрачность и отражающие способности зависят от того, как влияют эти предметы на свет, попавший на них, отражая весь или часть спектра, преломляя свет в себе, поглощая его, рассеивая его и т.д. 
 
MaxwellRender отталкивается от этого, и при создании материала представляет пользователю настройки, которые прямо отражают реальные свойства поверхностей. К примеру, в biased рендерах параметр reflect определяет степень отражения, зависящая от яркости указанного цвета, а параметр glossy влияет на уровень размытости отражения. В реальной жизни отражение света от поверхности зависит от её гладкости и параметре Nd определяющим эффект Френеля.

Приступим к описанию настроек материалов, вначале я расскажу о том, как добавлять слои и различные свойства материалов. В коннекторе к 3dsmax присутствуют кнопки D, L, E, B и C.
В родном редакторе материалов MaxwellRender добавление происходит через контекстное меню в области, отображающей список слоев илиже через главное меню пункт Edit .

В зависимости от выделенного элемента будут доступны различные пункты меню Edit или же кнопки из редактора материалов 3dsmax, если используется он.
Создавая новый, вы получите материал с одним слоем, внутри которого будет находиться один BSDFшейдер с 100% параметром roughnessи серым reflectance 0 –проще говоря, серый матовый материал, наподобие материала standard с настройками по умолчанию. 
 
На следующем рисунке я одинаково пронумеровал пункты меню в редакторе 3dsmax и в родном редакторе, чтобы показать соответствие. 

image001.jpg

1) AddLayer – добавляет новый слой. В текущих версиях MaxwellRender эти слои описываются термином «TheStackedLayersSystem».

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

MaxwellRender предоставляет специальный подход к построению сложных материалов – в частности используются слои позволяющие не просто смешать два разных материала (как например blendматериал присутствующий во многих biasedрендерах), а построить один материал из двух или более составляющих. Слои накладываются снизу вверх друг на друга(как слои в фотошопе). В зависимости от типа смешивания и веса слои будут видны в том порядке, в котором они уложены. 
 
Слой может содержать в себе NBSDF шейдеров (основной шейдер отвечающий за главные свойства поверхности) который в свою очередь может содержать в себе Coat шейдер (отвечающий за эффект сверх тонкой оболочки/пленки). Также каждый слой может содержать один emitter (шейдер отвечающий за свечение объекта и излучение им света в пространство соответственно) и один эффект displacementотвечающий за геометрический рельеф поверхности материала.
Допустим, чтобы получить пластик, нужно создать матовый цветной материал из одного слоя с одним BSDF шейдером, а после создать слой с BSDFшейдером описывающим глянцевое покрытие. Слой с покрытием должен быть выше первого цветного слоя и тип смешивания должен быть аддитивным. 

image002.jpg 

 Выделив слой, можно увидеть его настройки, в которые входят следующие элементы:
a) Флажок Enable (в 3dsmax) и аналог этого флажка в родном редакторе – отключение означает, что слой будет не оказывать влияние на материал. Такой же флажок содержат все прочие добавляемые элементы, поэтому в дальнейшем его упоминать не буду.

b) Числовое значение Opacity–одновременно является показателем веса слоя и значением прозрачности материала. Прозрачность через Opacity не является физически корректным эффектом, однако может служить для создания материала имитирующего некий тонкий объект (например, лист растения), для этого необходимо использовать чёрно-белую карту для слота справа от параметра Opacity, которая будет служить в качестве маски для прозрачности. Пиксели с белым цветом (R=255,G=255,B=255) будут соответствовать абсолютной непрозрачности (значение Opacity=100), а пиксели черного цвета абсолютной прозрачности (значение Opacity=0). Также с помощью карты-маски можно смешивать различные слои, а оттенки серого в карте-маске позволят получить разный уровень смешения нескольких слоев.

На рисунке изображен пример использования маски прозрачности. 

image003.jpg

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

image004.jpg

image005.jpg

c) Выпадающий список blend содержащий два типа смешивания normal и additive
Типы смешивания играют очень существенную роль в построении материалов, так как позволяют правильно конструировать многослойные материалы.

Normal – при этом типе смешивания текущий слой будет закрывать предыдущий ровно на столько процентов, сколько указано в настройках слоя в параметре Opacity/Mask. Поэтому слой с весом в 100% будет полностью закрывать собой слои идущие под ним.

При типе смешивания Additive,текущий слой смешивается с нижестоящим по аналогии с типом смешивания screen в фотошопе. Поэтому слой даже с 100% весом при аддитивном смешивании не перекроет полностью нижний слой, а смешается с ним. При таком смешивании яркие участки будут закрывать нижний слой сильнее, чем темные, а так же будут видны отражения, полученные слоем с аддитивным смешиванием. Таким образом, аддитивное смешивание позволяет получать широкий спектр материалов, отражающие способности которых характеризованы глянцевым покрытием – многие виды пластиков, лакированное, полированное дерево и т.д.

Пример смешивания двух слоев содержащих матовыеповерхности с текстурами, с помощью типа смешивания Normal. 

image006.jpg 

На рисунке изображен пример аддитивного смешивания слоев. 

Базовый слой – темно-серая матовая поверхность, а сверху находятся два слоя с низким Nd и разным цветом, установленным в параметре Reflectance 90 (цвет отражения при взгляде под углом), а в параметре Reflectance 0 (цвет отражения при прямом обзоре) у обоих слоев установлен черный цвет. Ndу эти слоев так-же немного отличается (один 1.2 другой 1.8), за счёт этого один слой создает глянцевую оболочку окрашивающую отражения в зелёный оттенок а другой оболочку окрашивающую отражения в синий. 

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

image007.jpg

Следует отметить, что BDSFшейдеры, хотя и лишились выбора типа смешивания (который теперь доступен только в конечном слое) все же имеют вес и даже порядок, хотя положение в списке в данном случае не играет ни какой роли, в то время как вес BSDFшейдеров влияет на смешивание их между собой. Смешиваются BSDF шейдеры между собой аддитивно, а если их общий вес не равен 100%, то редактор автоматически интерполирует значения, так что их общей вес при рендере будет равен 100%. Т.е. если есть два BSDFшейдера с весом 100% у каждого, при рендере их вес будет равен 50%.

2) AddBSDF–добавляет в текущий выделенный слой один BSDFшейдер. BSDF, как было сказано ранее – шейдер, описывающий большую часть свойств материала. С его помощью можно получить широкий спектр материалов, так как он позволяет настроить все основные свойства. Выделив BSDFшейдер, мы увидим (в родном редакторе справа, а в редакторе 3dsmax’а внизу) список свойств шейдера.

Я пронумеровал все свойства BSDFшейдера, а также указал каким полям они соответствуют в редакторе материалов 3dsmax. 

image008.jpg

image009.jpg

a) Числовое значение Weight влияет на смешивание нескольких шейдеров между собой, значение определяет степень влияния того или иного шейдера в рамках текущего слоя. Смешивание также может, происходить по указанной растровой карте. Детально о смешивании BSDFшейдеров я уже рассказал выше, в пункте 1.c.

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

b) Выпадающий список IOR, содержащий в себе два элемента Customи MeasuredData. По умолчанию установлен тип Customи это означает, что все настройки в блоке BSDF Properties будут определены пользователем вручную. Тип MeasuredData заменяет все настройки в блоке BSDF Properties на одно поле ввода и кнопку обзора пути к FullIOR файлу. Такой файлсодержит в себе все данные об отражающих и преломляющих свойствах определенного материала полученные лабораторным путем. Использование такого файла позволяетбыстро получить наиболее точный материал металла, драгоценного камня, стекла или жидкости. FullIORфайлы поумолчаниюнаходятсяподанномупути – «*\NextLimit\Maxwell 2\materialsdatabase\iorfiles» - там-же есть вложенная папка «iorthumbnaillibrary» содержащая в себе превью всех FullIORфайлов.

с) Reflectance 0 и d) Reflectance 90 параметры описывают цвет, отраженный от объекта при разных углах обзора. Reflectance 0 определяет,каким будет выглядеть цвет объекта при прямом обзоре объекта и по этому егоможно назвать основным цветом объекта. Reflectance 90определяет цвет объекта под скользящим углом, этот цвет также называют цветом Френеля. То как эти два цвета влияют на конечный материал зависит от настроек поверхности, в частности от параметра Roughnessотвечающего за гладкость поверхности, а также от параметра Ndотвечающего за коэффициентпреломления. В большинстве материалов Reflectance 90является белым, но в случае с металлами этот цвет является более светлым оттенком основного цвета металла.

e) Параметр Transmittance определяет посредством выбора цвета либо растровой карты, в какой цвет будут окрашиваться прошедшие через материал лучи по мере их угасания(зависит от параметра Attenuation). Устанавливая значения параметра отличным от черного (R=0,G=0,B=0) материал становится прозрачным.Коэффициент преломления такого материала зависит от параметра Nd, который в данном случае является эквивалентом параметра IOR (IndexofRefraction).

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

На рисунке изображен прозрачный материал, цвет Transmittance желтый. Ndдля наглядности равен единице, что-бы не было преломлений. Каждый экземпляр материал имеет разное расстояния в параметре Attenuation, указанное на рисунке. 

image010.jpg 

g) ПараметрNd, проще говоря, следует рассматривать как коэффициент преломления (IORIndexofRefraction). Ndпрямо влияет на эффект Френеля, и прежде чем описать как, следует разобраться в том что это за эффект. Эффект заключается в том, что сила отражений на поверхности зависит от угла обзора. Например, если вы смотрите на экран монитора прямо, вы увидите слабые отражения, если же вы посмотрите на экран под углом заметите что отражения стали гораздо сильнее. 
 
Взаимодействие параметра Nd и эффекта Френеля заключается в том, что при более высоких значениях поверхность начинает выглядетьодинаково отражающей, не зависимо от угла обзора. Другими словами, повышение значения Nd «ослабляет» эффект Френеля. Таким образом, изменения в значение Ndвлияют на общую отражательную способность объекта. Если, к примеру, использовать в качествеReflectance 90 белый цвет, а Nd=1, отражения в таком случае будут очень слабыми. Если же установить Ndдостаточно высоким, например, Nd=40, а Reflectance 90 оставить белым, то отражения будут заметно сильнее.

image011.jpg

Из рисунков выше следует, что повышение значения Nd увеличивает влияние Reflectance 90на общий вид объекта, в то время как влияние Reflectance 0 (который в данном случае выставлен черным) становится слабее. Конечно, значение Reflectance90 также влияет на максимальную силу отражения, поэтому если установить его цвет также черным, то в результате получится поверхность, которая отражает одинаково вне зависимости от угла обзора, но сила отражений будет слабой. Для непрозрачных материалов рекомендуется устанавливать Ndравному, по крайней мере, трем, если вы хотите что-бы они выглядели отражающими. Металлы могут иметь еще большие показалиNd (25-30), а для поверхности наподобие зеркала обычно требуетсяустановить Nd=100. 
 
Ndне оказывает никакого влияния на Lambertian материалы (Lambertianповерхностью считается поверхность с значением Roughness=100 (максимальное значение шероховатости поверхности), такая поверхность полностью рассеивает весь отраженный свет). Влияние Ndна силу отражения, также снижается за счёт увеличения параметра Roughness. При уменьшении параметра Roughnessповерхность будет более гладкой и влияние Ndна силу отражения будет выше.
И еще, как я написал вначале, Ndявляется эквивалентом параметра IOR, поэтому помимо всего прочего он соответственно влияет на коэффициент преломления.

Также справа от параметра Ndприсутствует флажок ForceFresnel – как уже было сказано количество света отражаемого от объекта зависит от параметров Reflectance 0и Reflectance 90, а Ndуправляет влиянием этих параметров на отражательную способность объекта в зависимости от угла обзора (эффект Френеля). В действительности же Ndполностью отвечает за то, сколько света отразится от поверхности объекта. Эти три параметра (Reflectance 0, Reflectance 90и Nd) могут вступить в конфликт, если вы, например, используете черный Reflectance 0 и очень высокие значения для Nd. Включение флажка ForceFresnelпозволяет использовать физически корректный эффект Френеля в результатекоторого рендер не учитывает яркость Reflectance 0 и Reflectance 90, а только их оттенки (в которые окрасится отражение), яркость отражений же будет, зависит только от Nd. 
 
Следующие изображения наглядно показывают действие флажка ForceFresnel. 

image012.jpg 

Примечание: также следует отключать флажок ForceFresnel в том случае, если вы используете текстуру для параметров Reflectance0 или 90, так как из-за опции ForceFresnel яркость пикселей текстуры не будет учитываться, и при низких значениях Roughness результат использования текстуры и опции ForceFresnel может не оправдать ваши ожидания. Когда вы не используете текстуры для параметров Reflectance0 и 90, рекомендуется использовать опцию ForceFresnel, так как она обеспечивает корректные отражения на всей поверхности объекта, даже если Reflectance 0 был выставлен черным.

h) Числовой параметр K (extinction coefficient)является частью формулы возвращающей более точные значения коэффициента преломления (IOR). Для большинства материалов достаточно использовать только значение Nd, так как найти точнуютаблицу с коэффициентами преломления для разных материалов гораздо проще, чем найти точные значения extinction coefficient, а устанавливать этот параметр на глаз нет смысла, так как предназначение параметра получить наиболее точный IORс помощью данных полученных лабораторным путем. Поэтому использование параметра Kтребуется только в особых случаях, когда важно получить очень точный результат. 
 
Стоит добавить что мастер (wizard) создания материалов, при создании металлов, использует Nd вместе со значением K, поскольку содержит в себе точные значения extinction coefficientдля каждой разновидности металла, а также данные о extinction coefficientсодержатся в complexIORфайлах (см. пункт б).

i) Числовое значение Abbe отвечает за силу дисперсии света при прохождении его через прозрачный материал. Дисперсией света называется явление, при котором свет разлагается на спектр - на цвета составляющие его. Высокие значения означают, что дисперсии будет мало, значения 60-70 приведут к тому, что объект будет, выглядит так, словно дисперсия отключена. Низкие значения Abbeприведут к увеличению количества дисперсии. Также нужно не забывать о том, чтобы использовать дисперсию нужно включить соответствующий флажок в разделе редактора материалов MaterialProperties,а также она должна быть активирована в настройках рендера. Дисперсия по умолчанию отключена, так как замедляет процесс рендеринга.

j) Два числовых параметра R2с флажком для активации. Как правило, переход между Reflectance0и 90 регулируется параметрами Ndи Roughness (гладкостью поверхности). Высокие значения Ndувеличивают влияние Reflectance 90на материал, когда значения параметра Roughnessдостаточно низкие. Увеличения Roughnessбудет приводить к тому, что влияние Reflectance 90на материал будет снижаться, а по достижении Roughness 100 (Lambertianповерхность) Reflectance 90вообще перестанет влиять на отражения в объекте независимо от выбранногозначения Nd. Это является нормой, но всеже есть случаи, когда требуется нейтрализовать влияние Roughnessна Reflectance 90. 

Например, материал вельвета, не смотря на то, что имеет очень высокий Roughnessповерхности, выглядит более ярким при взгляде под углом за счет микро волокон, которые под углом видно лучше, чем при виде сверху и поэтому под углом материал выглядит более ярким. Опция R2дает возможность имитировать подобные эффектыпозволяя регулировать угол перехода цветов Reflectance 0и 90 и нейтрализовать влияние Roughness (в том случае если поверхность не Lambertian, т.е. хотя бы 99.9). 
 
R2содержит в себе два поля ввода числовых значений, первое значение представляет собой угол перехода между Reflectance0 и 90 и соответственно может принимать значения от 0 до 90. Например, установив первое значение равным 45, цвет Reflectance 90начнет, проявляется при угле обзора больше 45 градусов. Второе значения параметра R2определяет степень влияния Roughnessна Reflectance 90, по умолчанию установлено значение 0 означающее, что Roughnessне влияет на Reflectance 90. Увеличение этого параметра приводит к увеличению влияния Roughnessна Reflectance 90, а максимальное значение 100 эквивалентно отключению опции R2вовсе.

На данном рисунке изображен материал со следующими параметрами: 

Reflectance 0 = синий, Reflectance 90 = белый.
Roughness=99
Nd=15
Видно что белый цвет не оказывает никакого влияния на материал за счет того что поверхность близка к Lambertianповерхности. 

image013.jpg 

Для этого изображения я использовал более сложный материал: 

Базовый слой – синий Lambertian (т.е. Roughness100,а Reflectance 0синий)

Поверх базового слоя я создал еще пять одинаковых слоев. С типом смешивания Additive. Пять просто чтобы их эффект за счет аддитивного смешивания суммировался и они выглядели бы ярче для лучшей наглядности.
Настройки этих пяти слоев такие:
Reflectance 0= черный.
Reflectance90 = белый.
Nd = 5.0
R2=80/0

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

image014.jpg 

Следующие пункты входят в группу SurfaceProperties и отвечают за свойства поверхности материала.

k) Числовой параметр Roughness– отвечает за микрошероховатость поверхности. Увеличение шероховатости поверхности приводит к тому, что она становится менее гладкой и начинает сильнее рассеивать отраженный свет. Параметр может принимать значения от 0 до 100. Нулевое значениеуказывает на то, что поверхность является полностью гладкой, и отражения в объекте будут выглядеть очень четкими. Значение 100 приводит к тому, что поверхность начинает полностью рассеивать свет, такая поверхность как уже упоминалось, называется Lambertian поверхностью (идеально диффузная поверхность).

На рисунке изображена зависимость рассеивания отраженного от поверхности света от параметра Roughness. 
А так же видно, что при увеличении Roughnessуменьшается влияние белого цвета Reflectance 90на отражающую способность поверхности материала. Как упоминалось ранее в описании настроек Nd,Reflectanceи R2, сила влияния Reflectance 90напрямую зависит от степени шероховатости поверхности. Увеличение Roughnessдо значений близких 100 сделают Reflectance90менее заметным даже при высоких значениях Nd.

image015.jpg

На рисунке изображен Lambertianматериал, идеально диффузная поверхность (значение Roughness=100) 

image016.jpg 

Так же справа от поля ввода значения Roughnessприсутствует кнопка для обзора текстуры, которую можно использовать для регулирования значения Roughness. Яркие части текстуры будут эквиваленты высоким значениям Roughness, а темные низким. Стоит заметить, что даже при включенной текстуре, числовое значение Roughnessтакжеиграет важную роль. При использовании текстуры самая яркая точка текстуры будет эквивалента указанному значению Roughness,а самая темная будет равна нулевому значению. Например, если вы используете дляRoughnessтекстуру черно-белых клеток и значение Roughness = 45, то поверхность в области белых клеток будет иметь значение Roughness = 45, а в области черных будет равно нулю.

На рисунке изображен материал для параметра Roughness,которого была использована текстура шахматных клеток, само значение Roughness = 35. Так же эта же текстура была использована для рельефа. 

image017.jpg 

А здесь для Roughnessи рельефа использована текстура, напоминающая извилины. 

image018.jpg 

l) Bump – функция, отвечающая за негеометрический рельеф. Имеет числовое поле ввода, слот для текстуры и флажок Normalmapвключение которого переводит Bumpв режим Normalbump,использующий для рельефа карту нормалей, предоставляющую более точный рельеф. Числовое значение усиливает или ослабляет силу рельефа, зависящую от текстуры.

Примеры материалов с использованием NormalBump. 

image019.jpg 

m) Числовой параметр Anisotropy определяет направление блика. Анизотропные отражения получаются благодаря однонаправленным повторяющимся бороздкам на поверхности, как например виниловая пластинка.Многие полированные материалы дают анизотропные отражения вместо изотропных (т.е. размывающих отражение одинокого во всех направлениях при увеличении параметра Roughness). Так же может быть использована текстура для параметра Anisotropy, яркие участки текстуры будут соответствовать высоким значениями анизотропии. В этом случае числовое значения не будет оказывать никакого влияния.

n) Числовой параметр Angle становится активным, только если параметр Anisotropyне равен нулю. Управляет углом направления анизотропного отражения. Для параметра можно использовать текстуру, в таком случае числовой параметр не будет оказывать влияния. С помощью текстуры для параметра угла анизотропии можно получить интересный эффект, который можно наблюдать, например, в полированном металле. Для этого следуют использовать чёрно-белую текстуру с круговым градиентом от черного цвета к белому цвету. 

image020.jpg 

В таком случае направление отражения будет круговым.

Материал полированного металла, полученный при использовании высоких значений Anisotropyи циркулярного градиента для параметра Angle. 

image021.jpg 

Следующий блок называется Subsurface Properties и настройки, содержащиеся в нем, отвечают за реализацию эффекта подповерхностного рассеивания света (SSS – SubSurfaceScattering), заключающегося в том, что свет, проходя через прозрачный материал, начинает, рассеивается в его толще. Часть этого света рассеется обратно на поверхность, а часть будет поглощена.

o) Цветовой параметрScattering – цвет подповерхностного рассеивания. Свет отраженный/рассеянный внутри материала будет окрашиваться в этот цвет.
Также после активации режима SingleSidedSSS (смотри пункт q)будет доступен слот для текстуры цвета подповерхностного рассеивания.

p) Числовые параметры Coefи Asymmetry.
Параметр Coefопределяет плотность частиц внутри материала. Нулевое значение означает, что свет будет проходить сквозь материал без столкновений с частицами, это означает, что подповерхностного рассеивания не будет. Увеличение параметра увеличивает плотность частиц внутри материала, и лучи света начинают с ними чаще сталкиваться, рассеиваясь или поглощаясь. Увеличение плотности частик приводит к тому, что материал начинает, выглядит менее прозрачным.

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

Схема влияния Asymmetryна подповерхностное рассеивания света. 

image022.jpg 

q) Флажок для активации SingleSidedSSS– переводит эффект подповерхностного рассеивания в режим для SingleSidedобъектов - объектов, не имеющих толщины (к примеру, один полигон). SSSв таком режиме напоминает эффект Translucencyно более честный. При его активации при просчетеSSSбудет игнорироваться толщина объекта, т.е. объект будет восприниматься полым с виртуальной толщиной стенок. Этот режимотлично подходит при создании материалов, для таких объектов как листья, трава, бумага – объекты для которых обычно используют модели без толщины. Числовой параметр виртуальной толщины стенок (в миллиметрах), будет доступен при включении флажка SingleSidedSSS. В качестве толщины также может быть использована текстура. Кроме того будут доступны некоторые другие опции. Параметры, отвечающие за обычный SSS, такжевлияют и на этот режим.

r) Min/Max – два числовых параметра определяют максимальную и минимальную виртуальную толщину стенок объекта при использовании текстуры толщины в режиме SingleSidedSSS. Доступно только после включение режима SingleSidedSSS. Темные участки карты будут соответствовать толщине указанной в значении Min, а яркие указанной в значении Max.

Пример использования SingleSidedSSS для материала листвы. (Взято из официальной галереи MaxwellRender) 

image023.jpg 

На этом настройка SSS не заканчивается. При использовании SSS ряд ранее описанных параметров (Transmittance, Attenuation, Nd и Roughness) также играет важную роль.

Transmittance – определяет цвет лучей попавших в толщу материала. Полностью черный (R=0,G=0,B=0) означает, что свет не будет проникать в материал и эффекта SSSне будет.

Attenuation – влияет на затухание света в объеме материала, малые значения будут делать материал менее прозрачным, но не стоит так-же забывать о том что на прозрачность влияет плотность объема указанная в параметре Coef.

Схема влияния плотности (ScatteringCoef) и дистанции затухания света (Attenuation)
на прозрачность материала. 

image024.jpg 

Nd будучи коэффициентом преломления, влияет на отклонение лучей света, проходящих через прозрачный материал и тем самым влияет на подповерхностное рассеивание. Следует использовать значения от 1.0 до 2.5, дабы избежать нереалистичного результата, так как IORвакуума 1.0, воздушной среды 1.01, а IORдиэлектриков не превышает 2.5. Рекомендуемый диапазон Ndдля обычных просвечивающих материалов от 1.2 до 1.7.

Схема влияния Ndна преломление лучей. 

image025.jpg 

Roughness – как и в любом другом случае первым делом влияет на рассеивание отражений, а также за рассеивания лучей на поверхности до того как они достигнут толщи материала. Таким образом, даже при нулевых отражениях, Roughnessвлияет на рассеивание лучей света. Остальные параметры, такие как, Abbe, R2, Anisotropy, AngleиBump, также полностью совместимы с подповерхностным рассеиванием и оказывают на него соответствующее влияние.

Примеры SSS материалов полученных с помощью мастера создания материалов (Wizards->SSSPresets)

Силиконовый гель. 

image026.jpg 

Апельсиновый сок.

image027.jpg

3) AddEmitter –добавляет к выбранному слою эмиттер (каждый слой может содержать только один эмиттер), позволяющий объекту излучать свет согласно указанным настройкам. Эмиттеры одна из самых важных частей MaxwellRender, так как предоставляет пользователю сконструировать практически любой источник света. Применив материал с Эмиттером на объект, он начнет излучать свет в зависимости от настроек энергии, эффективности и формы объекта. К примеру, крупная плоскость с эмиттером по действию схожа с AreaLight, а очень маленький шарик будет излучать свет как Omni/PointLightотбрасывая тени, резкость которых зависит от размеров излучающего свет объекта. С помощью очень маленькой плоскости можно, к примеру, сымитировать фотовспышку, расположив её рядом с камерой.

image028.jpg

image029.jpg

Выпадающий список Type содержит три режима.

Первый – Custom (в 3dsmax этот тип активируетсяопциональной кнопкой Color + Luminance), в этом режиме количество излучаемой эмиттером энергии и цвет света определяются следующими параметрами:
- Preset (в 3dsmaxLoadPreset) –позволяет загрузить данные из списка готовых настроек излучения.
- Color–позволяет определить цвет излучения, с помощью флажка справа (или с помощью выпадающего списка ColorTypeв 3dsmax) можно переключиться на режим выбора температуры цвета измеряемой в кельвинах. Заметьте что в данном режиме (Custom/Color+Luminance) температура/яркость цвета влияет только на цвет света, а не на его интенсивность.

- Выпадающий список Luminance позволяет выбрать тип единиц интенсивности излучения света. Выбрав определенный тип, редактор, предоставит набор параметров регулирующих яркость согласно выбранному типу единиц.
В редакторе 3dsmaxэтот блок параметров немного отличается от родного – в нем присутствует группа Luminanceсодержащая список Typeпозволяющий выбрать следующие режимы измерения интенсивности: Watts +Efficacy, Intensity (позволяет выбрать единицы интенсивности)и IES(позволяет выбрать IESфайл).

Вернемся к списку Luminanceродного редактора, он содержит следующие типы измерения интенсивности:
Power&Efficacy– интенсивность складывается из двух параметров:
Power (в 3dsmax – Watts) – измеряется в ваттах, и Efficacy – эффективность в люменах на ватт.Ватты определяют, сколько энергии потребляет эмиттер, а эффективность указывает, насколько эффективно эмиттер преобразует энергию в видимый свет. В родном редакторе также присутствует поле Outputпозволяющие увидеть, сколько в общей сложности люменов будет излучать объект с этим эмиттером.
Lumen – позволяет указать интенсивность источника света напрямую в люменах.(Lm/m2)
Lux–указывает интенсивность в люменах на квадратный метр.(Lm)
Candela –позволяет указывать силу света в Канделах. (Cd)
Luminance – позволяет установить силу света в Канделах на квадратный метр (Cd/m2)

Поле ввода и кнопка обзора пути для файлаIES/EULUMDATA, позволит загрузить IESили LDTфайл, содержащийданные о форме пучка света и интенсивности.

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

Третий режим – HDRImage – позволяет эмиттеру излучать свет согласно HDRтекстуре (поддерживается также MXI – формат изображения MaxwellRender).

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

4) AddCoat – добавляет к выбранному BSDFшейдеру подслой Coat. Coatingэффект представляет собой покрытие BSDF поверхности сверх тонкой оболочкой. Основным свойством оболочки является эффект интерференции тонких пленок получаемый за счет сверх тонкой толщины оболочки, образующий цветные узоры на поверхности оболочки.
Подобный эффект можно наблюдать рассматривая мыльный пузырь или в капле масла на поверхности воды. 

image030.jpg 

Толщина оболочки регулируется числовым параметром Thickness измеряемым в нанометрах. Параметр также может регулироваться текстурой, если вы используете текстуру, будет активен параметры Min/Max определяющие диапазон толщины оболочки. Темные участки текстуры будут соответствовать параметру Min,а яркие параметру Max.Остальные параметры влияют на отражательные способности оболочки, и по действию идентичны своим аналогам в BSDFшейдере.
Чтобы избежать радужных, узоров можно использовать значения равные 1мм. (1000000 нанометров) или более.Coatможет быть добавлен только один к одному из BSDF, но может рендериться и без учета BSDFшейдера, для этого достаточно снять флажок Enable с этого шейдера.

Пример Coat материала с текстурой для параметра Thickness. 

image031.jpg 

5) AddDisplacement – добавляет в выбранный слой подслой Displacement, функцию позволяющею создать геометрический рельеф.

Настройки Displacementв родном редакторе. 

image032.jpg 

Настройки Displacementв редакторе 3dsmax.

image033.jpg

Опишем настройки Displacement:
Слот для чёрно-белой текстуры на основе которой будет выдавливаться геометрия.
Height – сила выдавливания геометрии. По умолчанию сила (высота) выдавливания самой яркой точки карты измеряется в процентах, но можно указать и в сантиметрах (выпадающий список справа от параметра Heightлибо флажок AbsoluteHeight (cm)в редакторе 3dsmax).

Offset – параметр в диапазоне от 0.0 до 1.0. Указывает, какой уровень серого выбранной текстуры будет считаться за нулевую высоту выдавливания.

Gain (в редакторе 3dsmaxPrecision) – параметр отвечающий за увеличение подразбиения модели на которой будет использован Displacement. Увеличение параметра приводит к увеличению детальность Displacementи увеличению времени рендеринга. Для оптимизации сцены важно настроить параметр Gainтаким образом, чтобы количество подразбиений не было лишним в том случае если разрешение текстуры является более низким чем, то которое бы соответствовало указанному значению Gain. Следует использовать низкое значение и увеличивать и его пока детальность рельефа не станет удовлетворительной.
Также не будем забывать о том, что модели с изначальной низкой плотностью сетки понадобится большее значение Gain,чем модели с более высокой плотностью сетки.

Флажок Adaptive (в 3dsmaxAdaptivePrecision) – активация флажка блокируетввод значения Gain. В этом режиме количество подразбиений будет определяться рендером автоматически в зависимости от выбранной текстуры. Таким образом, можно не беспокоиться о том, что значение будет превышать нужное для максимальной детализации текстуры, поскольку оно будет автоматически соответствовать разрешению текстуры. Данный параметр следует использовать осторожно, так как текстуры с высоким разрешением могут сильно увеличить (возможно, неоправданно) время рендеринга. Можно воспользоваться, что увидеть максимальное количество деталей при выбранной текстуре, а потом снять флажок Adaptiveи вручную подогнать значение Gainтак чтобы результат удовлетворял требованиям.

Флажок Smoothing – включение активирует сглаживание (как группы сглаживания у модели) к Displacement.Замечу, что исходное сглаживание поверхности считается приоритетным, поэтому применив Displacementс флажком Smoothingна поверхность без сглаживания – полученная с помощью Displacementгеометрия также будет не сглажена.

Примечание: в родном редакторе материалов каждый слой может содержать один подслой Displacement, а в MaterialProperties в специальном выпадающем списке должен быть выбран слой с Displacement, который вы бы хотели использовать (по умолчанию выбран первый созданный Displacement).
Редактор 3dsmax позволяет добавить только один Displacement, поэтому в выборе не нуждается.

Разница между Bumpи Displacement. 

image034.jpg 

Далее рассмотрим блок настроек MaterialProperties (в 3dsmaxGlobalProperties)

Чтобы просмотреть блок настроек MaterialProperties достаточно выделить пункт с таким же названием в дереве слоев. 

image035.jpg 

Аналогично в редакторе 3dsmax,но немного по-другому называется. 

image036.jpg 

GlobalBump (в 3dsmaxпросто Bump) – слот для текстуры, флажок NormalMapping,и числовое значение силы рельефа. Как следует из названия, GlobalBumpприменяется ко всем слоям в материале, при этом настройки Bumpдля каждого BSDFшейдера в отдельности не игнорируются.

Выпадающий список Displacement (в 3dsmaxотсутствует, так как там может быть всего один Displacementв материале) – позволяет выбрать, из какого слоя нужно использовать Displacement.

Флажок Dispersion– включение флажка активирует дисперсию, если она настроена в материале. По умолчанию отключено, так как увеличивает время рендеринга.

Следующие флажки предназначены для композинга.

Флажок Matte–активация позволяет Matteобъекту возвращать цвет бэкграунда (даже если за Matteобъектом находились другие объекты)

Флажок Shadow– (влияет на рендер канал Shadows) позволяетMatteобъекту принимать тени от других объектов

MaterialId (в 3dsmax – SpecifyMaterialIDСolor) – позволяет выбрать цвет объекту для MaterialIdрендер канала.
Далее рассмотрим настройки растровых карт.

Настройки текстуры в родном редакторе материалов. 

image037.jpg 

Настройки текстуры в редакторе 3dsmax. 

image038.jpg 

Первый блок настроек называется ProjectionProperties,настройки в нем отвечают за мэппинг.

1) Числовое значение Channel – позволяет выбрать канал карты (MapChannel).

2) Выпадающий список Method позволяет выбрать по каким координатам тайлитьтекстуру: TileXY, TileX, TileY (TileUV, TileU, TileV в 3dsmax) или NoTiling. Правее находится выпадающий список, содержащий два пункта. Relative,позволяет указывать количество тайлов относительно, а Metersпозволяет задавать количество тайлов в метрах.

3) Два числовых параметраRepeat (в 3dsmax – Tile) – позволяют указать количество тайлов по Xи Y (или Uи Vв 3dsmax), в зависимости от настроек в Methodединицы будут является относительными либо метрами.

4) Offset– регулирует смещение текстуры по X(U) и Y(V) относительно начала текстурных координат.

Следующий блок называется ImageProperties и содержит настройки, отвечающие за изображение текстуры в целом.

5) Флажок Invert – инвертирует текстуру.

6) Флажок AlphaOnly – позволяет использовать в качестве текстуры только альфа канал выбранного изображения.

7) Выпадающий список Interpolationсо значениями Off и On(в 3dsmaxфлажок Interpolation) – включает фильтрацию для выбранной текстуры, делая её более сглаженной.

8) Числовое значение Brightness – регулирует яркость текстуры.

9) Числовое значение Contrast – регулирует контрастность текстуры.

10) Числовое значение Saturation – регулирует насыщенность текстуры.

11) RGBClamp содержит два поля ввода - отсекает данные о цветепикселей текстуры ниже первого значения и выше второго.

12) NormalMappingсодержитфлажкиFlipX, FlipY, Wide (в 3dsmaxWideZ) отвечающих за инверсию нормалей для выбранной карты нормалей.

13) Кнопка обзора пути к файлу Load–для загрузки изображения.

14) Кнопка Unload – выгружает текстуру (в 3dsmaxаналог отсутствует).

15) Кнопка Full(в 3dsmaxкнопка View) – открывает текстуру в полный размер в специальном окне. В родном редакторе это окно временно заменяет обычное, поэтому нем присутствуют настройки для регулировки яркости, контрастности, насыщенности, и отсечения цвета. В 3dsmaxэто окно появляется рядом и настройку можно производить из основного окна.

16) Кнопка Refresh– перезагружает выбранную текстуру (в 3dsmaxаналог отсутствует).

17) Кнопка Switchdisplaysize – увеличивает превью выбранной текстуры в настройках карты (в 3dsmaxаналог отсутствует).

18) Окошко, отображающее превью выбранной текстуры. Ниже находится выпадающий список содержащий историю ранее открытых изображений – позволяет быстро загрузить любое изображение.

19) Группа Sequenceв редакторе материалов 3dsmax–позволяет использовать секвенцию изображений для анимации текстуры.

20) Флажок ShowInViewport в редакторе материалов 3dsmax– включение указывает на то, что эту текстуру нужно отобразить во вьюпорте.

Рассмотрим оставшиеся настройки редактора. 

image039.jpg 

Вначале я опишу контекстное меню вызываемое правым кликом в области превью (его аналог это главное меню->Preview)
1) SelectScene – позволяет выбрать сцену для превью материала из предложенного списка.
2) LoadScene – позволяет загрузить превью-сцену из файла вручную.
3) Previews– содержит в себе список материалов (в виде превью) сохраненных в текущей сессии работы с редактором материалов с помощьюопции Store, и позволяет загрузить выбранный материал.
4) Store – опция сохраняет текущий материал и его превью в список Previews который предоставляет возможность в текущей сессии работы с редактором материалов загрузить ранее сохраненный материал.
5) Remove–удаляет из списка Previewsтекущий материал.
6) Export… –позволяет экспортировать текущий материал в MXMфайл.
7) Options– открывает настройки превью материала.

Настройки превью. 

image040.jpg 

a) SamplingLevel– числовой параметр определяющий максимальный уровень сэмплов для превью.
b) Time (s) – числовой параметр определяющий максимальное количество времени отведенного на рендеринг превью (в секундах).
c) Scale (%) – указывает масштаб разрешения перевью в виде процента от максимального.
d) Quality– выпадающий список содержащий два режимарендеринга превью - Draftи Production. Для превью в редакторе материалов отлично подходит Draftтак он более быстрый.
Вернемся к остальным настройкам.
8) Кнопки отмены и повтора действий в редакторе материалов.
9) Поле, отображающее текущий выбранный материал из списка сохранённых в Previews и общее количество материалов сохраненных там.
10) КнопкаSettexturedisplayedinviewports –открывает список текстур использованных в материале и позволяет выбрать ту, которая должна отображаться во вьюпорте.
11) Кнопка RefreshPreviewобновляет превью материала.
12) ФлажокPriorizematerialpreviewoverinteractivepreview – включениеблокируеткнопкуRefreshPreviewиактивируетавтоматическое обновление превью в зависимости от вносимых в материал изменений.

А вот так выглядят настройки превью в коннекторе к 3dsmax. 

image041.jpg
 
В самом редакторе присутствует кнопка Preview–запускающая обновление превью материала.
А в Главное меню->Customize->Preferences->Maxwell– вы сможете найти блок, отвечающий за настройки качества превью. Он содержит те же самые настройки, что и родной редактор (кроме настройки Threadsпозволяющей указать количество потоков, в родном редакторе её нет, и потоки определяются автоматически).

В начале я описывал меню, через которое создаются и добавляются слои (главное меню->Editлибо щелчок правой кнопкой мыши на одном из элементов дерева слоев), в нем также содержатся опции для удаления, копирования слоев и т.д. В 3dsmaxэто меню доступно как контекстное меню выбранного элемента дерева слоев. 

image042.jpg 

1) Copy – копирует выбранный элемент в буфер обмена.
2) Paste – вставляет скопированный элемент из буфера обмена в выбранный слой, или же вставляет копию слоя если был скопирован слой.
3) Duplicate – делает дубликат выделенного элемента (слоя или шейдера).
4) Rename – позволяет переименовать слой.
5) EmbedMXM – позволяет добавить к текущим слоям слои материала из выбранного файла.
6) ResetSelected–сбрасывает настройки выбранного элемента на настройки по умолчанию.
7) RemoveSelected(в 3dsmaxDelete) – удаляет выбранный элемент.
8) RemoveAll– удаляет все элементы.
9) Expandall– раскрывает все слои в дереве слоев, в редакторе материалов 3dsmax.
10) Collapseall – закрывает все слои в дереве слоев, в редакторе материалов 3dsmax.
11) ExportMXM–опция редактора 3dsmaxпозволяющая сохранить текущий материал в MXMфайл.
12) Mergewith…–опция позволяет добавить в текущий материал слои из другого материала имеющегося в сцене или в библиотеки материалов 3dsmax.
13) Кнопка MXED…в редакторе 3dsmax – открывает родной редактор материалов и переносит в него текущий материал. В это время 3dsmaxбудет не отвечать, пока вы не настроите материал в родном редакторе и не закроете его. Если при закрытии вы ответите на вопрос о сохранении настроек «да» то они перенесутся в редактор материалов 3dsmax.

Также есть доступ к библиотеке материалов и онлайн библиотеке материалов, он осуществляется через вкладку Browse. 

image043.jpg 

В 3dsmax доступ к ним можно получить через кнопки Library...и Online…

Примечание: следует использовать эти кнопки, а не вызывать использовать библиотеку из вызванного 3dsmax’ом родного редактора (с помощью кнопки MXED…) потому как выбранный таким образом материал библиотеки не будет переправлен в 3dsmax при закрытии вызванного родного редактора. 

image045.jpg 


Примечание: доступ к онлайн библиотеке можно получить только в том случае, если вы зарегистрированы в онлайн библиотеке материалов. Логин и пароль вводятся в настройках редактора материалов, в которые можно попасть через главное меню->File->Preferences 

Автор статьи: Silent Prayer
Все права на данную авторскую статью защищены правообладателем: www.3dmax.ru 
Любая перепечатка и размещение материала урока только с разрешения: www.3dmax.ru

Возврат к списку

Predator84 | 18 Февраля 2011, 10:02
Сергей Рудаков | 26 Ноября 2011, 11:11
спасибо,добрые люди!
Olga | 20 Февраля 2013, 03:02
Огромное спасибо за колоссальную по объему и качеству работу.