15 апреля 2014 15.04.14 94 35K

Технологии графики в современных играх, часть 3: Заря Past-Gen'а

Продолжаем глубокое погружение в океан графических фич.

В предыдущих двух частях (первая, вторая) мы коснулись тех технологий, которые на сегодняшний день считаются «cutting-edge» (на самом гребне волны). Какие-то — больше, какие-то — меньше. Но именно при их упоминании сердце графодрочера вожделенно содрогается.
В этот же раз на повестке дня — те «рядовые труженики» графического фронта, которым не уделяется того же внимания просто потому, что они уже давно стали стандартом. Но без них, тем не менее, того «nex-gen графона», в ожидании коего замер сейчас весь мир, попросту не было бы.
Короче говоря, сегодня речь пойдёт о технологиях, которые расцвели сразу же с приходом предыдущего поколения. Ну или где-то в начале.

Часть 3: Заря Past-Gen'а

Как водится, сразу же оговорюсь: граница между этой и предыдущей частями довольно размыта.
Я, исходя исключительно из собственного видения, концептуально отнёс часть технологий past-gen'а к его началу, а часть — к концу. Можешь с ходу затевать в комментах срач на тему «не-не-не, технология %SUBJECTNAME% должна была оказаться в предыдущей части».
Даже спорить не вижу смысла.

А начнём с того, что лучше всего символизирует «Зарю Past-Gen'а», буквально:

Lens Flares Нет в меню

Прости, я так и не смог выбрать один кадр из опенинга ME2, поэтому первый поместил в заглавие всей статьи, а второй — сюда.

По русски — блики на линзах.
Да, они были в играх задолго до появления Xbox 360 / PlayStation 3, но реализация их… мда… скажем так, была на совершенно другом уровне.
По сути, они представляли собой банальные спрайты (как на частицах), на которые натянута текстура блика.
Как оно выглядело — прекрасно демонстрирует недавний «Разбор полётов» по Alone in the Dark: The New Nightmare:

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

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

С приходом же past-gen'а появилась возможность делать натуральные, киношные блики на линзах. Чем разработчки, разумеется, тут же не преминули воспользоваться.
Рассказывать про Lens flares особенно нечего (если не касаться физики и того, как и откуда именно они берутся). Так что вот тебе просто пачка великолепных примеров:

А также интерактивная демонстрация флары — с ним же

On-lens grime/dirt

По идее, это просто часть эффекта Lens Flare, но она реализовывается немного по-другому. Поэтому я выделил её отдельно.
Это такие специфические блики, которые появляются, когда на линзах есть грязь / капли воды.

Общественная реакция

Не могу обойти стороной этот аспект.

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

 

Как говорится, сладенького хорошо в меру.
Естественно, публика сперва восхощалась эпичными фларами, но очень скоро она ими уже «объелась до упора». Так что пошли всевозможные шутки на тему того, например,

А CG-шники с чувством юмора стали периодически делать видосы для ютуба, обстёбывая там эту попсовую тенденцию.

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

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

А рука об руку с фларами идёт их младший брат:

Sun Shafts / God-Rays Есть в меню

Это такой эффект, который виден, когда пар или туман просвечивается лучами, пробивающимися, например, через листву. Короче, когда между игроком и источником света есть какое-то дырявое препятствие, а в воздухе висят какие-то мелкие частицы.
На самом деле, с реальной волюметрикой (объёмные явления вроде того же тумана) этот эффект не имеет ничего общего. И на деле является небольшой модификацией Zoom Blur, о котором я рассказывал в предыдущей части.
Но он создаёт именно такую видимость чего-то объёмного и оттого придаёт картинке реализм.

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

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

Ну и, раз уж заикнулся про атмосферу…

Z-Depth Fog Есть в меню

По-русски — туман по карте глубины.
Сразу же, чтоб оценить важность эффекта — вот один и тот же кадр, с туманом и без:

Как видишь, сабж хоть чуть-чуть — но должен быть всегда: хоть на панорамном пейзаже, хоть в камерном помещении. Его отсутствие резко бросается в глаза и создаёт ощущение, что мы находимся в безжизненном вакууме.
Дело в том, что в воздухе всегда что-то есть. Даже сейчас в твоей комнате — есть хотя бы пыль и испарившаяся вода. Их может быть ничтожно мало, но какие-то частицы в воздухе есть всегда. Они настолько мелкие, что никогда не осядут и будут витать в атмосфере вечно.
При относительно мелких размерах помещения эффект от них даже не виден. Но стоит выглянуть за окно — и сразу можно заметить, что здания на горизонте гораздо более бледные, чем поблизости. Причём, так обстоят дела не только в городах, коптящих атмосферу смогом, а вообще везде, где есть воздух.
Так что для убедительной картинки наличие этого эффекта критически важно.

Сейчас я уже и припомнить-то не могу, какая игра первой его опробовала (боюсь, речь вообще о всяких там DOMM 1 и 2), да это и не важно.

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

У нас есть

Ты уже с ней знаком по дефокусу из предыдущей части.
Мы берём основную картинку — и примешиваем к ней какой-нибудь цвет по этой карте.

В самом простом случае — эффект работает именно так. Но в результате атмосфера получается чересчур однородной. На каком-то расстоянии картинка полностью окрашивается в этот цвет, а дальше — всё.

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

Ситуацию это исправило, но не сильно.
Потом кто-то догадался модифицировать карту глубины в соответствии с экспоненциальным угасанием (поблизости сцена очень быстро окрашивается в туман, а дальше разница всё меньше и меньше).

Наконец, приход паст-гена позволил накладывать на карту глубины текстуру (например, движущуюся фотографию реального дыма/пара)

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

В результате — на сегодняшний день туман в играх уже очень похож на настоящий и действительно привносит в них атмосферу. Как в прямом, так и в переносном смысле:

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

Glow / Bloom Есть в меню

Всё верно, трэшовая игра по мотивам перезапущенного «ТРОНа». Ведь его стилистика состоит из глоу-эффекта чуть менее, чем целиком.

1. Ломаные линии, как на микросхеме
2. Glow-эффект
3. ???
4. TRON!

Лично я — просто обожаю glow-эффект. Из всех возможных — он у меня на втором месте. Сразу за оптикал фларами.
Вселенная ТРОНа — одна из моих самых любимых. И не в последнюю очередь — из-за glow. Я от него настолько тащусь, что...Я.
Сам.
Прошёл.
Полностью.
«TRON: Evolution»

… без читов и трейнеров.

… и просмотрел весь мультсериал «TRON: Uprising».

… в оригинале.

Так что же это за эффект?

Мы видим что-то лишь потому, что нам в глаза оттуда прилетел свет. Звучит коряво, но так оно и есть. Прилетел красный луч — мы видим красное. Прилетел зелёный — мы видим зелёный.
Так вот, при любом раскладе свет проходит через линзу. Либо это реальная линза в фотоаппарате, либо наш природный хрусталик. И поскольку ничего идеального в реальном мире не существует — то и наша линза обладает несовершенствами. Сам материал не совсем чистый, поверхность слегка мутноватая… Короче, попадая на линзу, свет немного рассеивается. И приходит на сенсор (сетчатку):

Когда луч средней яркости, то этого рассеивания не заметно. Потому что яркость рассянного света — гораздо ниже «прямой» яркости.
Но если луч очень яркий, то сам он в нашем глазу выглядит как пересвет, а вокруг него возникает «ореол».

Собственно, именно это поведение света и воссоздаёт glow-эффект.

Допустим, у нас есть какое-то

Мы делим его яркость на 2 части, которые в сумме дадут исходную картинку:

Та, что менее яркая — это картинка, обозначающая рассеянную часть света. Поэтому

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

В качестве примера я взял какой-то там wallpaper, и понятия не имею, откуда он. В любом случае, спасибо автору (кем бы он ни был).

Это самый простой алгоритм glow-эффекта.
Ещё проще можно сделать, если в самом начале не делить исходное изображение на 2 части, а взять оригинал в качестве основного компонента (100% исходника) и слегка затемнённую версию (40%) — в качестве рассеянного (размываемого) компонента. Очевидно, что после сборки итоговая яркость станет больше, чем была первоначально (140%), но обычно разработчики это учитывают и делают исходный рендер чуть темнее, чем нужно в итоге.

Например, именно так было сделано в

Как нетрудно заметить, glow, когда он накладывается на всю картинку, придаёт ей этакой сказочности.
А если конкретнее — «затуманенности». Потому что так явно свет рассеивается только в тумане, причём довольно густом. Так что совмещать эти 2 эффекта — как говорится, сам бог послал.

Дальше — больше. Если уж мы используем туман, то «делить» исходную картинку на чёткую и рассеиваемую составляющую — можно по карте глубины. Тогда то, что дальше в тумане — сильнее размоется чем то, что ближе.
Наконец, можно вообще произвольно крутить две этих части для достижения желаемого эффекта.
Как ты уже мог догадаться, в таком случае нам очень пригодится HDR-рендеринг: с его помощью при разделении изображения мы сможем сохранить яркости выше 1, да и размоются они гораздо натуральнее. А если всё это ещё и приправить сверху Sun Shafts (и фларами по вкусу), то

Но это — у добросовестных разработчиков. А нерадивые — идут на хитрость и под вывеской «HDR» — на самом деле рендерят самым первым способом (100%+40%), просто не везде, а по специально сделанной маске.
Отсюда — и пересвет при включении этого типа-HDR:

К слову, так уж повелось, что честной glow или простой glow на весь экран — так и называется. А вот когда glow'ятся не все объекты, или степень этого эффекта пропорциональна яркости пикселя (т.е., «на лету» генерируется карта glow по яркости) — это bloom.
В результате — «настоящий» glow придаёт натуральности, а bloom — добавляет яркости в и без того яркие места. Т.е., пересвечивает картинку.

Так что, как говорится, опасайтесь подделок!

Но даже если учитывать такую непорядочность отдельных игроделов, я всё равно люблю Glow. Ведь он внёс свою лепту в те шедевры,

Ну и напоследок — то, о чем меня люто-бешенно спрашивали в комментах к предыдущим частям:

Anti-Aliasing (AA) Есть в меню

Тема, на самом деле, объёмная. И до третьей части я её откладывал в том числе потому, что опасался, как бы на неё одну не ушла отдельная статья… в итоге почти так и получилось.
К тому же, по-человечески разобраться с АА без некоторой нудной теории — невозможно. А это напрочь выбивается из общего формата/стиля всей серии.
Поэтому конкретно эту тему — я вынес в отдельную мини-статью.

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

(Тут был Flash-плеер, но с 2020-го года Flash не поддерживается браузерами)

(Тут был Flash-плеер, но с 2020-го года Flash не поддерживается браузерами)

 

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

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

Некст-ген сулит нам новые горизонты, и далеко не только в плане графона.

Всем добра.

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

Лучшие комментарии

Лекс Дарлог 15 апреля 2014, 4:37
Долгожданная третья часть.
Немного задержался, но на мой субъективно-авторский взгляд — оно того стоило.

Четвёртая — будет менее лирической и более технической.
Лекс Дарлог 15 апреля 2014, 5:04
Сомневаюсь, что дадут. Костя же в предыдущем «Игрозоре» ясно дал понять, что ситуация исключительная. Мол, «не борзей, и так уже 2 косаря почти подряд».
vladik78siberia 15 апреля 2014, 14:32
Беспрецедентное по сравнению с предыдущими частями количество примеров :) Практически комикс, но зато каждую мысль объяснил. Спрайтовые фонарики помню, да :)))
Похоже, самую техническую вкуснотищу ты оставил на следующий раз. И еще повторюсь, про сглаживание спин-офф был великолепен, да. Большое спасибо.
Стопгейм, думаю не стоит прерывать победную серию автора, а? ;)
MASTER_J 15 апреля 2014, 5:13
Насчет Lens Flares (Спасибо я теперь знаю как это штука называется) это киношный эффект. Ни понимаю, что он делает в шутерах от первого лица, если у глаза такой эффекта нету. Он выглядит неестественно.
Ах ТРОН при этих словах я вспоминаю фильм 1982 года, и игру TRON 2.0
DuxBellorum 15 апреля 2014, 8:43
Я из-за тебя и твоей статьи на работу опоздал. Тебе не стыдно, а?
Что я начальнику скажу?
Спасибо за труды. Повторюсь: ты реально крут.
Лекс Дарлог 15 апреля 2014, 5:26
Флары есть и на «природных» глазах. Просто выглядят они по-другому, потому что у хрусталиков другие оптические свойства. Никогда по ночам не заглядывался на уличные фонари? Или на фары проезжающих авто?А вот CG-шника оторвать от разглядывания флар в полу-трансовом состоянии (собенно, если он композер) — не легче, чем кота от валерьянки.
В кинематографе же наибольшей популярностью пользуются сейчас флары с анаморфных линз. Просто потому что. Так повелось.
Лекс Дарлог 19 апреля 2014, 20:14
Скорее не «В одни руки», а «За одну концепцию»
Значит ли это, что на SG не поощряются по-настоящему развёрнутые темы с действительно «глубокой аналитикой»? Те, которые в принципе невозможно раскрыть за 1 статью. Которые по определению будут либо серией в нескольких частях, либо унылой отсебятиной в общих чертах (что, в свою очередь, превратит статью в сплошную «воду» безо всякой конкретики).
Лекс Дарлог 19 апреля 2014, 21:38
Я и радуюсь. :)
Но если буду и дальше писать для SG — надо найти «точки пересечения».
Увлекательно «трындеть ни о чём» я, к сожалению, не умею. Это особый талант. Я привык если уж что-то и рассказывать — то основательно.
Лекс Дарлог 19 апреля 2014, 22:06
Это отдельная тема для опроса. Но тоже запущу. Уже после 4 части. Ибо она уже точно выйдет с перерывом.
На этих и следующих выходных я занимаюсь делами, скопившимися за все те weekend'ы, которые я полностью посвятил написанию статей.
Антон Иващенко 15 апреля 2014, 11:33
Ленс флэйры обожаю просто. Помню как игрался с тем самым плагином в AE просто любуясь на различные пресеты. И Абрамса понимаю за любовь к ним и не осуждаю даже. :3
За серию текстов спасибо, чтоб тебе еще один косарь дали. :3
Никита Немцев 19 апреля 2014, 21:34
Которые по определению будут либо серией в нескольких частях, либо унылой отсебятиной в общих чертах (что, в свою очередь, превратит статью в сплошную «воду» безо всякой конкретики).


Ну не только ж аналитике на главную выходить ;) А вообще — делается это как бы чтобы избежать застоя, ибо будут видеть всякие ребята, что посты про графон окупаются и тоже начнут делать свои аналоги(Не, серьёзно такие найдутся), что несколько губительно для Блогов. Но это всё равно противоречиво.

А такого, чтоб косарь давали прям каждой части серии постов про что-нибудь, в принципе раньше не было — так что радуйся, что таким вот исключением оказался :3
Лекс Дарлог 15 апреля 2014, 21:47
«На вкус и цвет». Я, вот, был в поросячем восторге и неимоверном воодушевлении после просмотра фильма.
Единственное место, где можно было слегка заскучать — это ближе к концу, когда они летят на паруснике. Но там оно не «проседающее», а просто переключившееся с экшена на лирику. И оно там очень к месту, как раз меж двух эпичных сцен. Мне очень понравилось.

Прелесть мира — в его разнообразии.
Я, вот, напрочь не понимаю ужастиков и исторических эпиков. А также классического (читай, «средизменого») фэнтези, молодёжных комедий и ещё целой пачки жанров.
Но кто-то это смотрит, кому-то это нравится. Тёткам за тридцать — так вообще, нет ничего лучше, чем «Страдающая рабыня Изаура любит, богатея».
Люди разные, их предпочтения — тоже. И это замечательно, на мой взгляд.

Ты ожидал увидеть поп-корн шоу — оно там действительно далеко не самое выдающееся.
Но теперь у тебя есть отзыв человека, который совершенно искренне считает, что «TRON: Legacy» — это, хоть и не шедевр всех времён и народов, но всё равно шикарный фильм. Просто для специфической, не попсовой аудитории.
А значит, наверное, это не фильм говно, а просто не твой жанр.
Читайте также