Gamedev
Evgeniy Vegera
1165

Значения текстур для окружения: Часть 1

Это перевод статьи художника Rogelio Olguin, подготовленный каналом CGITVines

В закладки
Аудио

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

Я спросил Corey Hill, могу ли я использовать его работы в качестве примера для этой темы. Спасибо ему за открытость. Вы можете посмотреть его ArtStation здесь. Он очень усердно трудится, продолжает работать и совершенствовать свои навыки.

Тема настроек текстур – это не только про физически корректный рендеринг, но особенно актуальной она стала именно для PBR.

Когда художники создают текстуры для окружения, они должны осознавать, какие условия освещения будут в сцене. В общем, проверенное временем правило заключается в том, чтобы убедиться, что текстуры не слишком темные. Но одно только это сбивает с толку. Самая большая причина, по которой окружение не должно иметь темных текстур, заключается в том, что в физическом мире очень немногие материалы имеют значение шкалы серого ниже 50%. Материалы, выходящие за эти рамки, это пластмассы, определенные породы камней и краски.

Это также работает и в другую сторону: в мире не много материала, который является супер ярким, обычно такие текстуры использовались для красок и металлов. Поэтому, как художник, при работе с окружением до настройки шейдинга я стараюсь оставаться в пределах 50% шкалы серого или чуть выше. Во время настройки шейдинга я стараюсь оставаться выше этого и перемещать свою медиану на 40% — 30% – получается немного ярче. Я предпочитаю текстуры светлее вместо текстур, которые убивают художественность моих сцен. Реалистичность текстур — это всегда художественный баланс, который достигается благодаря материалам и освещению.

Работа Corey Hill значительно улучшилась, и вы видите, что он развивается, изучая новые техники. Я спросил разрешения, могу ли я использовать две его работы: бар и спальню. В обеих работах возникают проблемы, когда речь идет о значениях и освещении. Но прежде чем вы сможете исправить освещение, вам нужно скорректировать значение текстур.

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

Нужно спуститься на пасс ниже, чтобы увидеть только альбедо. Первым делом я накинул grayscale в Photoshop.

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

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

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

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

Ниже из Unreal Wiki

Вот объяснение по Unreal Wiki, это копипаст, больше читайте по линку.

“Вот пример текстуры, которая была слишком темной и насыщенной по сравнению с тем, какой она должна быть”.

“Значения исходной текстуры в среднем составляли 46, что означает, что при преобразовании в линейное пространство они будут излучать только 2% света! Среднее значение отрегулированной текстуры равно 150, что означает, что она будет отражать 31% входящего света, что достаточно для кирпичной стены. Отрегулированная текстура также будет лучше показывать затенение, так как есть гораздо большая разница между полностью освещенными и полностью затененными местами”.

“Ниже приведен пример того, как темные текстуры влияют на освещение. На верхнем изображении используется оригинальная темная текстура. На втором изображении интенсивность света увеличена с 2 до 12. Как видите, GI не помогает и не высветляет темные области вообще. Последнее изображение использует настроенную текстуру с яркостью, возвращенной к интенсивности 2. Эти изображения показывают, что если текстуры слишком темные, они не приведут к хорошему освещению, независимо от того, насколько вы поднимаете яркость освещения”.

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

Опять же, первым делом хочется увеличить интенсивность освещения.

И опять-таки смотрим только grayscale текстур. Очевидно, что значения текстур снова очень темные.

При просмотре ниже видно, что 80% комнаты намного ниже 50% оттенков серого. Два самых ярких пятна – лампочка и потолок. Эта сцена сильно нуждается в том, чтобы поднять значения текстуры по всему помещению. Мы теряем тонны больших деталей из-за текстур, которые переконтрасчивают сцену.

Если вам понравится статья, я переведу и вторую часть, в которой Rogelio Olguin разбирает настройку сцены спальни для более правильного освещения.

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Evgeniy Vegera", "author_type": "self", "tags": [], "comments": 8, "likes": 37, "favorites": 118, "is_advertisement": false, "subsite_label": "gamedev", "id": 91881, "is_wide": false, "is_ugc": true, "date": "Wed, 08 Jan 2020 17:27:27 +0300", "is_special": false }
0
{ "id": 91881, "author_id": 71718, "diff_limit": 1000, "urls": {"diff":"\/comments\/91881\/get","add":"\/comments\/91881\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/91881"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954, "last_count_and_date": null }
8 комментариев
Популярные
По порядку
Написать комментарий...
3

Создателям всяких модов и фанатских ремастеров это надо читать в первую очередь. У них в 99% случаев отвратительное освещение вроде чернющих теней и видимость на 10 сантиметров в комнате с парой десятков источников света. И толпы людей этого не видят и пишут в комментах что это это якобы хорошо выглядит и всё реалистично. А когда напишешь им что освещение просто никуда не годится и надо всё переделывать - заминусуют и обматерят. Хотя суть претензий та же, о чём пишут в этой статье. Неправильно настроенное освещение - убивают всю графику. Но те, кто даже не пытался изучать техники настройки света и вообще весь смысл правильной настройки - с пеной у рта будут доказывать что всё выглядит отлично, а кто не согласен - завидует или просто идиот.

Как раз для уменьшения количества таких людей и нужно писать подобные статьи везде. И почаще. Чтобы народ знал хотя бы на что надо обращать внимание.

Ответить
0

Открою тайну - делать грамотный покрас и освещение - это сложно, и это крайне требовательный к скиллу модера момент.

Тебя минусуют и говорят, что всё норм не потому что там реально всё норм, а потому что предъявы про "переделывай!" к фанатским коммьюнити - это простое хамство.

Если ты думаешь, что сами авторы модов не видят, что создаваемое ими отдаёт "васянством", то у тебя явно проблемы с эмпатией.

Ответить
–1

 Обычно за такой штукой следит Технический художник который дорабатывает сам или пинает моделлеров - под стандарты игры - приходящий к нему в руки 3д ассеты. 

Ответить
0

Обычно за такой штукой следит Технический художник

Мы обсуждаем фанатские моды.

Конечно, за этим следит технический художник и старший менеджер по текстурам, за которыми следит генеральный директор и совет модерских акционеров. *сарказм*

Ответить
2

Даёшь вторую часть! Интересно что, как и почему исправлялось.

Ответить
1

Хотел запостить в Unity-группе но чот коротковато для статьи( Может лучше просто допишете эту? Не вижу смысла так мелко их дробить.

Ответить
1

Как только будет готова вторая часть, обязательно опубликую

Ответить
0

Было интересно, спасибо. Жду вторую часть 🙂

Ответить

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovz", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "chvjx", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "chfbl", "p2": "gnwc" } } } ] { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwcm9qZWN0SWQiOiI1ZTRmZjUyNjYyOGE2Yzc4NDQxNWY0ZGMiLCJpYXQiOjE1ODI1MzY0Nzd9.BFsYFBgalfu_3oH9Fj-oBhiEgVx976VQfprRahAELFQ", "release": "3c305b26" }
{ "jsPath": "/static/build/dtf.ru/specials/DeliveryCheats/js/all.min.js?v=05.02.2020", "cssPath": "/static/build/dtf.ru/specials/DeliveryCheats/styles/all.min.css?v=05.02.2020", "fontsPath": "https://fonts.googleapis.com/css?family=Roboto+Mono:400,700,700i&subset=cyrillic" }