Анизотропия

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

Давным-давно, я хотел смоделировать трехмерку новенькой на тот момент nVidia GeForce RTX 2080 Ti, и на моменте текстурирования встал вопрос: "Каким образом получить хитроумный блик но винте видеокарты?" Такой блик встречался мне в жизни и раньше, чтобы было понятно, о чем речь, прикрепляю ряд фотографий:

anysotropy1.jpg

Прежде, чем бежим в 3d-софт пробовать повторить данное светопредставление, давайте разберемся, откуда этот блик берется.

Википедия предлагает такой вариант определения:

Анизотропи́я (от др.-греч. ἄνισος — неравный и τρόπος — направление) — различие свойств среды (например, физических: упругости, электропроводности, теплопроводности, показателя преломления, скорости звука или света и др.) в различных направлениях внутри этой среды; в противоположность изотропии.

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

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

Думаю, стоит попробовать повторить что-то похожее в моей любимой Maya. На этот раз рендерить буду в арнольде(я уже писал с другого аккаунта подобную статью, только там использовался vray). Метод, который я сегодня предложу, стар как этот мир. Здесь есть пара подводных камней, о которых я чуть позже поговорю отдельно.

Создадим небольшой цилиндр, снимем фаски и осветим сцену hdri-картой. Рендер и вьюпорт дают понять, что даже при выкручивании metalness цилиндр похож на металлический, но не хватает вот этого блика и царапин. К слову, бликом здесь и нге пахнет... Цилиндр получился зеркальным, причем в нем отражения на рендере хуже чем во вьюпорте почему-то, лол. Кто знает, как это фиксится, чикните коммент, молю.

anysotropy2.jpg

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

Прежде всего я раскроил цилиндрический брус, причем сделал 2 выкройки в UV Set Editor. Ах да, если вас бесит скайдом, то на картинке я показал, как от него избавиться. В его атрибутах надо вырубить видимость камеры и скрутить в ноль радиус во вкладке вьюпорт. Я не умею делать развертки от слова совсем, я постоянно забываю, куда надо нажимать (так как разворачивал я пару-тройку раз в жизни), поэтому сейчас методом "тыка" вроде мало-мальски пришел к желаемому результату:

anysotropy3.jpg

Короче, щас в HYPERSHADE начинается настоящий цирк с градиентом. Наша задача сделать пару нод, которые радиальным градиентом будут указывать нашему блику, как ложиться на цилиндр. Нажимаем "Tab" в пустом поле графов гипершейда и пишем airampfloat, выбираем эту ноду. Создаем таким же образом aifloattorgba, даль ше соединяем как я и в настройках рампа ставим "тип" radial и в поле пишем "юви сет" anisotropy(та самая ювиха, которую я отдельно создал). На выходе должно получиться что-то типа этого:anysotropy4.jpg

Теперь если мы перенесем c помощью ПКМ рамп в атрибут вращения (rotation) основного материала и пересоберем ноды в гипершейде, то выйдет уже что-то отдаленно напоминающее этот злополучный блик:

anysotropy5.jpg

Если внимательно посмотреть на блик боковой грани, то видно, что его колбасит в спираль. Строго говоря колбасит и анизотропный радиальный блик (это основной подводный камень), но об этом чуть позже. Идея в том, чтобы сделать маску на торцевые грани цилиндра и эту маску использвать только для радиальной анизотропии через ramp. Для этого, нам нужно сдублировать ramp (shift+d), тип изменить на circular. Кривую выстроить +- как у меня и переконектить все тоже как у меня:

anysotropy6.jpg

Далее через aicomplement и connection editor собираем такую красоту. Выход aifloat кидаем на вход aicomplement, и ПКМ перетаскиваем aicomplement на атрибут anisotropy основного материала. В connection editor выход - OutColorR, вход - SpecularAnisotropy:

anysotropy7.jpg

Дальше нам остается только OutColor нашего основного материала законектить к Surface Shader и играться с настройками Roughness, дабы получить что-то правдоподобное:

anysotropy8.jpg

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

1. Это наш анизротропный блик закручивает. Это можно пофиксить сменой ракурса.

2. Я не умею рендерить, поэтому пример мой слишком шумный и есть вырвиглазные моменты. Дай Бог здоровья тем, кто обуздал Арнольд в полной мере! Очень-очень бы хотелось с такими пообщаться... :)

anysotropy9.JPG

anysotropy10.JPG

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

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

Я надеюсь, принцип Вам ясен. Если что-то не понятно, пишите в комменты и в личку, я очень быстро отвечаю. Очень бы хотел заручиться знакомством с cgi-специалистами, которые работают над реальными проектами и готовы поделиться жизненным опытом. Также рекомендую посмотреть этот видосик. Спасибо за внимание! Увидимся в следующих постах ;)





592 0 850 6
13
2021-03-30
Поправь пож: "нА` винте видеокарты?"
2021-03-30
Александр, ахахах, хорошо, поправлю :)
2021-03-30
«Чтобы понять истинную природу хода лучей, нужно несколько курсов отучиться в области физики и оптики»

Зачем? Тут же все очевидно: это просто круглые царапины, соответственно и отражение как у круглых царапин. В принципе наверное будет достаточно карты глубины с соответствующим рисунком, но данный метод конечно лучше.
2021-03-31
Глорфиндейл Боромиевич«Чтобы понять истинную природу хода лучей, нужно несколько курсов отучиться в области физики и оптики»

Зачем? Тут же все очевидно: это просто круглые царапины, соответственно и отражение как у круглых царапин. В принципе наверное будет достаточно карты глубины с соответствующим рисунком, но данный метод конечно лучше.

Хахах, чтобы понять истинную природу, все же, думаю, стоит поучиться. Ведь вы знаете, почему происходит отражение электромагнитных волн, почему волны могут не только отражаться, но и распространяться в различных средах с различной степенью воздействия на э/м волну, существует понятия скин-слоя и тому подобные вещи. Ход электромагнитных волн обычно изучается на 3 курсе высших учебных заведения на электродинамике. Это, конечно, не нужно все для того, чтобы организовать данный блик в 3D-программе. Да и в принципе, на уровне обывателя достаточно знать о дифракции волн и то, что поверхность содержит кольцевые царапины, как вы заметили. Но это все не полностью описывает процесс распространения света, и всегда можно копать дальше. Ведь не зря я написал об истинном понимании процесса )
2021-03-31
Black Beauty
Хахах, чтобы понять истинную природу, все же, думаю, стоит поучиться. Ведь вы знаете, почему происходит отражение электромагнитных волн, почему волны могут не только отражаться, но и распространяться в различных средах с различной степенью воздействия на э/м волну, существует понятия скин-слоя и тому подобные вещи. Ход электромагнитных волн обычно изучается на 3 курсе высших учебных заведения на электродинамике. Это, конечно, не нужно все для того, чтобы организовать данный блик в 3D-программе. Да и в принципе, на уровне обывателя достаточно знать о дифракции волн и то, что поверхность содержит кольцевые царапины, как вы заметили. Но это все не полностью описывает процесс распространения света, и всегда можно копать дальше. Ведь не зря я написал об истинном понимании процесса )

С этим я согласен, но понимание физики света полезно для всей 3D графики. И такой блик ничем не выделяется на общем фоне, это банальный bump, просто частный случай царапин, могут быть например хаотичные, а могут быть радиальные. Вот только карта bump (или normal map) необходима в очень высоком разрешении, и это не практично, если есть метод получше. Ну и конечно компакт-диски уже простой картой глубины не воссоздать, разве что совсем физически корректный рендер использовать. (Может Maxwell + текстура в сверхразрешении и много дней рендеринг)
2021-03-31
Пошла почитать, потому что стало интересно что же такое анизотропия. 😆👍
2021-03-31
Глорфиндейл Боромиевич
С этим я согласен, но понимание физики света полезно для всей 3D графики. И такой блик ничем не выделяется на общем фоне, это банальный bump, просто частный случай царапин, могут быть например хаотичные, а могут быть радиальные. Вот только карта bump (или normal map) необходима в очень высоком разрешении, и это не практично, если есть метод получше. Ну и конечно компакт-диски уже простой картой глубины не воссоздать, разве что совсем физически корректный рендер использовать. (Может Maxwell + текстура в сверхразрешении и много дней рендеринг)

Проще уж в фотошопе радугу подрисовать )))
2021-03-31
А разве в ренжедерах стандатный шейдер не поддерживает анизотропию из "коробки"?
2021-03-31
Сергей, так он убогий :)
2021-03-31
Игорь, в каком месте то?
2021-03-31
Plague DoctorИгорь, в каком месте то?

Если бы он был так хорош, его бы использовали все при рендере посуды и не устраивали бы эту эквилибристику с нодами материалов в хайпершейде. Но почему-то в основном, метод рендера этого блика реализуют подобным образом, описанным в этой статье.
2021-04-01
Очередное доказательство того, что кто-то делает видимость работы ради работы.
2021-04-01
Павел, выглядит красиво в твоём примере! Я же писал, что не умею рендерить в арнольде от слова совсем ))) Просто изложил основной принцип построения анизотропного блика, не больше, не меньше...
RENDER.RU