Gamedev
Алексей Кривоносов
5759

Из чего состоит графика?

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

В закладки
Слушать

Статья будет разделена на несколько отдельных частей:

1. Текстуры.

Стоит начать с текстур. Возможно многие не знают, но в играх уже давно модель персонажа или любого другого объекта состоит не из одной текстуры. В Call Of Duty: Black Ops 3 для лиц героев используется 6 текстурных карт, которые сейчас детально разберём.

Текстуры для лица.

Color map задаёт изображение, которое будет наложено на модель. Это может быть картинка кирпичной стены, досок или любого другого изображения.

Normal Mapping – это технология, используемая для имитации неровностей поверхности на объекте. Она применяется, чтобы сделать вашу финальную модель более похожей на ее высокополигональную версию. С ее помощью можно добавить различные детали, которые нельзя передать через геометрию из-за ограничений полигонажа на вашем проекте, и заставить вашу модель выглядеть более скругленной для лучшей передачи освещенности и большей реалистичности.

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

Карты нормалей – это RGB изображения, где каждый из каналов (красный, зелёный, синий) интерпретируется в X, Y и Z координаты нормалей поверхности соответственно. Красный канал пространства касательных карты нормалей отвечает за ось X (нормали направленны влево или вправо), зелёный канал за ось Y (нормали направлены вверх или вниз) и синий канал за ось Z (нормали направлены прямо от поверхности.

Карта нормалей.

Gloss — эта карта контролирует резкость отражений. При самом высоком показателе материал становится зеркальным, а при нулевом значении — матовым.

Warframe.

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

Карта трансмиссии.

Fuzz map используется для создания различной растительности. Например, борода, брови, мох на дереве.

Лица выглядят более естественно.

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

Пример использования occlusion map в игровом движке Unity.

2. Тени.

Тени считаются реалистичными, когда их основание выглядит четко, а дальше тень рассеивается. За такой эффект отвечают soft shadows.

Grand Theft Auto V.

Ambient occlusion используется для затенения объеĸтов, создания теней на стыĸах стен.

Сравнение ambient occlusion.

3. Освещение.

Возможно вы часто видели в игре, как пробиваются лучи света сквозь листву. Это выглядит и вправду красиво. В данный момент используется два вида прямого освещения: SSGR освещение и Volumetric light.

Screen space god rays это более «дешёвый» способ отображения солнечных лучей. Самый главный минус этого метода в том, что лучи находятся в пространстве экрана, если смотреть на источник освещения. Отводя камеру от источника света, лучей будет не видно и эффект объема пропадёт.

Volumetric light создаёт эффект объема сцены, лучи при повороте камеры не исчезают. Из-за этого такой метод предоставляет более красивую картинку, но при этом жертвуя производительностью.

Global illumination — это название ряда алгоритмов, используемых в трёхмерной графике для более реалистичной имитации света.

Глобальное освещение рассчитывает не только прямое освещение, но и отражения света, цветовые отскоки.

Глобальное освещение в Call Of Duty: Black Ops 3.

4. Отражения.

Cube map — методика для моделирования отражений на поверхности объекта. Кубические карты не показывают динамику, а это значит, что декали и персонажи не будут отображены при таком методе отражения.

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

Screen space reflections — отражения, построенные по принципу трассировки лучей в пространстве экрана. Главные минусы таких отражений, это артефакты по краям экрана и исчезновение отражения при повороте камеры вниз или вверх.

Destiny 2.

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

Grand Theft Auto V.

5. Дополнительно.

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

Например, объёмные облака, которые взаимодействуют с источником света и самозатеняются.

Horizon: zero dawn.

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

Вот просвечиваемое ухо у главного героя Uncharted 4.
Также подповерхностное рассеивание хорошо подходит для растительности: травы, листвы.

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

{ "author_name": "Алексей Кривоносов", "author_type": "self", "tags": [], "comments": 46, "likes": 159, "favorites": 483, "is_advertisement": false, "subsite_label": "gamedev", "id": 244935, "is_wide": false, "is_ugc": true, "date": "Sat, 31 Oct 2020 16:26:25 +0300", "is_special": false }
0
46 комментариев
Популярные
По порядку
Написать комментарий...
49

Нормальная статья 

Ответить
13
Ответить
40

Извини меня, но тут капец как поверхностно и пользы не принесёт вообще тому, кто это читает. Читателю же по-любому интересно, как работают технологии. Собственно половины настроек, встречающихся в играх, тут нет. Написал бы хоть влияние на производительность. Ну и отдельно стоит упомянуть текстурирование black ops 3. Почему именно эту игру? Тут даже не все карты используются, а также часть названий искажены под их движок. Roughness - это почти тот же glossness, только первое название встречается почти во всех движках. Про карту трансмиссии вообще впервые слышу, но звучит как z-buiffer, так что какой в ней смысл?
Касательно статьи о трассировке, может просто своруешь у IXBT огроменную статью? Смысла писать про неё нет, т.к. коротеньких статей по ней куча, а если напишешь также, то она шибко не разъяснит, как лучи работают.
Для тех, кому реально интересно, как работает графон, держите ссылочки на статьи поподробнее. Сначала лучше начать с сайта stopgame, там и весело, и понятно. Статья о PBR освещении: https://stopgame.ru/blogs/topic/66047 Линия статей по основам нового графона + как влияет на производительность.
Часть 1: https://stopgame.ru/blogs/topic/55415
Часть 2: https://stopgame.ru/blogs/topic/55667
Часть про сглаживание: https://stopgame.ru/blogs/topic/55929
Часть 3: https://stopgame.ru/blogs/topic/55951
Как работает трассировка лучей во всех подробностях: https://www.ixbt.com/3dv/directx-raytracing.html Но предупреждаю, она тут на 2 часа чтения, что весьма много, ещё и лучше читать всё целиком за раз.
Лучшая статья о том, как работает затенение, вокселями и просто SSAO/HBAO: https://nvpixels.wordpress.com/2017/10/13/%D1%87%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-ambient-occlusion-%D0%B8-%D0%B7%D0%B0%D1%87%D0%B5%D0%BC-%D0%BE%D0%BD-%D0%BD%D1%83%D0%B6%D0%B5%D0%BD/
Как работают мягкие тени PCSS. HFTS от Nvidia: https://nvpixels.wordpress.com/2017/12/08/%D0%BA%D0%B0%D0%BA-pcss-%D0%B8-hfts-%D1%82%D0%B5%D0%BD%D0%B8-%D1%83%D0%BB%D1%83%D1%87%D1%88%D0%B0%D1%8E%D1%82-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE-%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA/
Статья про DLSS: https://dtf.ru/hard/108592-4k-i-120-fps-na-maksimalkah-kak-tehnologiya-dlss-2-0-izmenit-nashe-otnoshenie-k-proizvoditelnosti-v-igrah
Как работает VXGI/SVOGI: https://habr.com/ru/company/mailru/blog/353740/
Хорошая статья XYZ по нормалям: https://dtf.ru/gamedev/96898-vse-pro-bake-zapechku-kak-etap-aaa-payplayna
И развёртке: https://dtf.ru/gamedev/83063-uv-razvertka-aaa-payplayn-4-7-samyy-polnyy-gayd
Ну и это в основном всё, что понадобится для настройки графики + знание, как оно работает и почему столько ест. Чтобы узнать, почему настройки съедают много, то лучше пользоваться nvidia guidence(https://www.geforce.com/whats-new/guides) даже через переводчик, т.к. подробно разъясняется сколько отдельная настройка ест в кадрах и как влияет на видяху, процессор.

Ответить
14

Эта статья была нужна уже хотя бы для того, чтобы ты ссылок накидал.

Ответить
7

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

Ответить
4

с последним сильно соглашусь. Сам только недавно начал осваивать UE4 и  Blender, т.к. слишком долго читал только информацию, без практики. Широких статей обо всём нет, но они банально нужны обществу, учитывая как прогрессирует геймдев. Ещё и технологии эволюционируют, появляются новые костыли, а всё их описание остаётся с 1990-2000 годов, что тоже подбешивает. Тут чисто нужно тонну времени и терпение, чтобы сделать много статей конкретно на DTF, а остальные сайты морально устарели, т.к. картинки фигового разрешения, сами сайты привет из 2000 и гифок нет. Сейчас более-менее канал "Этот компьютер" начинает разбирать настройки графики и как они работают, в будущем поможет, впринципе. Желаю успехов в просвещении DTF, но попробуй не так сжато расписывать, всё-таки народ на DTF хоть и агрессивный, даже легион и киберпанк удалось унизить, но вполне интересующийся геймдевом.

Ответить
2

Лучшая статья о том, как работает затенение, вокселями и просто SSAO/HBAO

но тут капец как поверхностно

Лучше по конкретным примерам изучать что бы то ни было, т.е. код рендера и шейдеры. А это всё теория, понимать и самостоятельно имплементировать(!) которую можно только уже хорошо, практически разбираясь в этом. Так что это разные уровни поверхностного мема "Рисуем сову" :)
Но опять же какова цель, разбираться теоретически в принципах и писать код (либо разбирать чужой) разные вещи, шишек не мало на этом набито :)

Ответить
0

как по мне писать код вообще не надо, когда уже всё готово у Nvidia, AMD и github. Копируй и вставляй. Потом одним движением переключай. Сейчас мало кому нужны собственные движки, разве что для развлечения. У больших и средних студий уже свои движки готовые с документацией, скорее всего. Просто если писать трассировщик лучей самому в 300 строк, чтобы посмотреть на 3 шарика с отражениями в окошке собственной программки.... Тут только если у тебя наполеоновские планы, чтобы уйти в старшие инженеры-разработчики NVIDIA, AMD.

Ответить
1

как по мне писать код вообще не надо, когда уже всё готово у Nvidia, AMD и github. Копируй и вставляй. Потом одним движением переключай.

Прикрутите одним движением код TAA (просто как пример) к любой игре (сурс порту) от ID Software :)
Я говорю, все представления розобьются о практику, ничего просто так не делается нужно понимание чужого кода, чужого движка, API. И общих навыков программирования. 

Ответить
0

cохранил тупую статью, что бы сохранить умный комент 

Ответить
0

Было бы хорошо еще увидеть в подробностях, что такое SSGI, и чем он отличается от SSRTGI. Очень мало информации на эту тему можно найти.

Ответить
29

Очень странный пост непонятно для кого. Выглядит как выжимка из доклада в универе по комп. графике
 Не стоит считать всю написанную мной информацию 100% точной. Если вам интересно — углубитесь в тему и перепроверьте.

А зачем тогда это читать, если в итоге надо перепроверять?

Ответить
25

Сыш ты не базарь так э! Умный э? Профессор наук?  

Ответить
8

Куда не зайду, всюду вижу его.

Ответить
15

Большинство местных комментаторов даже таких основ не знают. Пусть будет ликбез.

Ответить
1

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

Ответить
2

Ты ещё посоветуй его стримы)

Ответить
1

А если они гомофобы, то что им читать?!
Да и хер ты сейчас найдёшь эти посты.

Ответить
2

А если они гомофобы, то что им читать?!

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

Да и хер ты сейчас найдёшь эти посты.

Один запрос в гугл и два перехода по ссылкам, включая пагинацию на сайте стопгема
https://stopgame.ru/blogs/topic/55415
https://stopgame.ru/blogs/topic/55667
https://stopgame.ru/blogs/topic/55929
https://stopgame.ru/blogs/topic/55951
https://stopgame.ru/blogs/topic/66047

Ответить
6

 Из чего состоит графика?

Из лжи.

Ответить
1

Из магии (в значение иллюзии) 

Ответить
0

Чем больше мощности железа, тем меньше лжи)

Ответить
3

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

Ответить
4

Подсайт @Gamedev , ибо речи о конкретной игре нет (тут о разработке, что применимо к всем играм).

Статья будет разделена на несколько отдельных частей:

В оглавлении можно накидать якорей.

Ответить
2

Согласен полностью

Ответить
2

Хорошо, сейчас перенесу.

Ответить
2

Статья действительно странная - для обзорной сложновата и не детальна, для подробной вода.
Но есть и интересное.
Кто может объяснить и привести рефы, что такое transmission map и для чего используется?
А то в статье есть карта для лица, а объясняется на картинках с буффером глубины на ландшафте.

Ответить
2

Transmission map используется для подповерхностного рассеивания.

Ответить
0

Спасибо, так лучше. До этого как то не интересовался, как подповерхностное рассеяние в принципе считается.

Ответить
1

Хорошая статья! 👍🏻

Ответить
0

что думаешь о пс5?

Ответить
1

Исключительно пошлые мысли перед сном.
А, ты не меня спрашивал... тогда, забудь,)

Ответить
0

Кал слабый, зато с играми

Ответить
0

ну багснакс это аргумент

Ответить
1

Ебать на превью к статье ужас какой

БЕЗНОГNМ

Ответить
1

Натуральной графики сейчас уже нет - всё из заменителей молочного жира. Вот советская графика была настоящей

Ответить
0

А как рисуют карты нормалей?

Ответить
2

Сначала делают такую модель из большого количество полигонов (тут всего 40face'ов, в среднем один face=2 полигонам). Потом нормали из неё запекают в отдельное изображение и наносят это изображение на более низкополигональную модель(у другой всего 2 полигона, а по детализации тоже самое )  .(Тут я немного неправильно нанес и получилась верх ногами, ну думаю смысл понятен. Слева низкополигональная, а справа оригинал ) 
Все что выделенно это отдельные face 

Ответить
1

А вот после применение триангуляции(превращает face в полигоны) , что бы лучше понять как может уменьшиться количество полигонов 

Ответить
0

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

Ответить
0

Сначала делают high-poly модель и с помощью неё запекают нормал мапы для игровой модели 

Ответить
0

Сообщение удалено

Ответить
0

зачем делать стаью уровня вводного урока???

Ответить
0

Когда нибудь я допишу свою новую статью о 3D, но блин это так лень, огромная тонна текста и картинок, перечитываешь по несколько раз представляя себя читателем который будет все критиковать. Еще и работой отвлекают.

Ответить

Комментарии

{"hash":"c2d91857","params":{"id":"dtfru","service":1,"title":"\u041f\u0440\u044f\u043c\u043e\u0439 \u044d\u0444\u0438\u0440","isLegacy":false}}