30 марта 2014 30.03.14 261 71K

Технологии графики в современных играх, часть 2: Апофеоз Past-Gen'а

Лучший блог недели
1000 ₽

Часть 2: Апофеоз Past-Gen'а

В прошлой части моего рассказа основной темой была «сверх-новая эра» — эпоха DirectX 11 и OpenGL 4. На сей же раз — речь пойдёт о технологиях, появившихся (или ставших мэйнстримом) за время «правления» консолей предыдущего поколения.

По моему скромному мнению, этот период можно считать Ренессансом игровой индустрии. Именно Xbox 360 и Playstation 3 вызвали такой колоссальный скачок в графике, каких не было в предыдущих поколениях и, боюсь, уже не будет в следующих. Наверное, благодаря этому Past-Gen продержался так долго. Хоть в последнее время уже все понимали, что ему давно пора на пенсию, но графика и по сей день смотрелась весьма неплохо. А во всяких Last of Us — и вовсе шедеврально.
Не пойми меня неправильно: я сам ПК-геймер. Но...В результате этой «Эпохи Возрождения» — появилось больше графических технологий, чем за всю предыдущую историю игр. Конечно, так произошло в том числе и благодаря затянувшемуся жизненному циклу этих консолей. Но это далеко не основная причина.
Дело в том, что каждый игродел всё время зажат в рамки возможностей железа. В рамки, которые ему кажутся чудовищно тесными. Но в которые, тем не менее, надо вписаться. При этом, ещё и выдав картинку как можно сочнее.
Всю свою жизнь он мечтает в реалтайме сделать то, что доселе было лишь в фильмах. Но как только железо позволяет реализовать что-то киношное — фильмам тут же открываются новые горизонты.
Так что разработчики игр всё время находятся в этакой «гонке вооружения», в которой им никогда не победить.

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

Совсем другое дело, когда новая технология — это результат истинно творческого подхода технарей. Наглядный пример того, что получается, когда прогеры от мира игр не втупую используют фичи нового железа или DX (ещё и выдавая их при этом за достоинство своего движка / своей игры), а действительно придумывают оригинальный способ для создания желаемого эффекта.
Такие гениальные программисты графики всегда были, есть и будут. Но, как и любых других гениев, их очень немного. Зато если уж им удаётся изобрести какую-нибудь новую вундервафлю — она точно сорвёт всем башню, даже не сомневайся.

Да, нынешний past-gen охватил огромный промежуток времени. Так что и в датах появления «экспонатов» из нашего сегодняшнего списка — колоссальный разброс. Одни явились свету практически только что (BattleField 3), другие — буквально сразу же после релиза этих консолей, а третьи — и вовсе существовали и раньше, но расцвели во всей красе лишь на PS3/X360.
Поэтому как-то упорядочивать сегодняшний список нет смысла, и рассказывать я буду вразнобой, преданно следуя велению своей левой пятки… волшебного китайского рандома.
Как и в прошлый раз, оговорюсь сразу:
Хоть я и работаю в CG-индустрии, но я не Господь-Бог от мира компьютерной графики. Так что в мелочах могу ошибиться. Если написал что-то не то или не так — поправляй в комментах.

И последнее, что хотелось бы сказать во вступлении. Не все технологии из сегодняшнего списка присутствуют в меню графических настроек. Но я просто не мог обойти стороной эти, без преувеличения, феноменальные достижения игровой индустрии.
Чтоб у тебя была возможность ознакомиться лишь с тем, что тебе интересно, я отметил их значками:
Есть в меню
Нет в меню

Ну что, приступим!



Translucence (Просвечиваемость) Нет в меню

Давай проведём такой небольшой эксперимент. У тебя есть под боком какая-нибудь мелкая лампочка? Без разницы, какая. Хоть фонарик на телефоне, хоть светодиод на мониторе. Лучше всего — белого цвета, но сойдёт и красного. Чем ярче — тем лучше.
Нашёл? Закрой её пальцем.
Видишь? Он просвечивает.
«Ну и что тут такого? Все этим в детстве баловались.»

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


Включаем SSS:


Искусственно усиленный SSS:

На первый взгляд, картинки практически идентичные. Но между ними есть отличия, и именно их ловит наш глаз, когда мы пытаемся по внешнему виду определить материал.
В общем, SSS — штука крутая и нужная. Оно в одно включение адски повышает реалистичность любой модельки, особенно персонажей.
Вот только жрёт оно процессорного времени — немерено. А оттого — для реалтайм-графики просвечиваемость недоступна… была до недавнего времени.
И первая удачная попытка воссоздать SSS в реалтайме принадлежит, конечно же…

Crysis 1: Thin/Planar (foliage) Translucence


Или, по-русски, просвечиваемость тонких/плоских объектов (листвы).
Тут, как раз, тот самый случай, когда мощности железа просто однажды позволили. В Crytek не изобретали ничего нового. Лишь взяли на вооружение технологию, которая уже давным-давно используется в киношном рендере. Да и от стандартного алгоритма освещения — отличается лишь одной мелочью.Обычно — свет считается только с одной стороны полигона. С той, которую мы видим. Тут же — рендеринг осуществляется по тому же самому алгоритму. Точно так же создаются тени. Но освещённость считается не с одной, а с обеих сторон. И их результат плюсуется. Всё.
По сути, ничего нового. Просто в 2 раза больше вычислений на свет. И именно поэтому данная технология раньше не использовалась.
На момент выхода первого Crysis'а её, имхо, тоже рано было внедрять: железяки были ещё не настолько мощными. Но в Crytek захотели адский (по тем временам) графон — и получили его. Ценой (адских же) тормозов.
Меня вообще по сей день терзают смутные сомнения, что само решение сделать первый Кризис в сеттинге джунглей было продиктовано в первую очередь именно тем, что КрайТеки ну ооочень хотели похвастаться просвечиваемостью.
А чтоб её было видно — просвечивающие объекты надо располагать между игроком и лампочкой. Поскольку основная лампочка — это солнце, то, естественно, эти самые объекты должны висеть над головой игрока. И ещё очень желательно, чтоб они при этом плавно двигались, демонстрируя всю прелесть этого эффекта.
Не знай, как тебе. А мне под такое описание в голову приходит только пальмовый лес :)

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

Battlefield 3: «Approximated»/DICE Translucence


У этой просвечиваемости нет собственного названия, хотя вот как раз она — его достойна. Поэтому как её только ни называют: approximated (аппроксимированная/приблизительная), DICE's (просвечиваемость от DICE), Battlefield's… Но проще всего её гуглить — по имени автора.
Есть такой программист графики — Colin Barré-Brisebois. Сейчас он работает в Warner Brothers Games Montréal (и миграция всех самых крутых людей из DICE — тема очень интересная, но как-нибудь в другой раз). А раньше он работал в DICE и написал для третьей Баттлы сабж.
Лично меня больше всего впечатляет именно эта просвечиваемость. Потому что Колину удалось получить правдоподобный псевдо-SSS практически по цене предыдущего экспоната («тонкого»).

Во время демонстрации этой технологии на GDC 2011 Колин… показал все её исходники. Даже более того: вся презентация была, по сути, подробным разбором того, как работает этот алгоритм, какой параметр за что отвечает и как все остальные девелоперы могут сделать то же самое в своей игре.
Все желающие убедиться — могут просмотреть полную запись этой презентации.

Конечно, эта технология воспроизводит SSS не совсем корректно. Есть ряд артефактов, возникающих при определённых условиях.
Но знаешь что? Рядовой игрок их даже не заметит!

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

Но, как ни парадоксально, до сих пор она была задействована всего лишь в нескольких играх.

C-C-C-COMBO! S-SSS и SS-SSS


Тем не менее, попытки получить «честный» SSS в реалтайме продолжаются по сей день. На мой взгляд, две наиболее интересных — это SSSS и SSSSS.
Нет, у меня не залипла «Ы» на клаве. Это «Separable SSS» и «Screen-Space SSS». Оба этих алгоритма — за авторством одного и того же человека, Jorge Jimenez. По ходу, ему нравится эта буква :)

Собственно, скрины с бошкой мужика в самом начале «главы» про просвечиваемость — как раз из его демки S-SSS.
В своё время по всем порталам, посвящённым графике и соответствующим чатам, промчался вот этот видос:

Уж поверь, самыми ярыми графодрочерами — являются сами 3D-шники. Ну, вернее, те из них, кто ещё и геймеры.
Так что обсуждение этой демонстрации было бурным. Шутка ли: автор утверждал, что в реалтайме считает SSS, и притом делает это, что называется, «в лоб». Т.е., безо всяких фэйков и аппроксимаций. Прям, труЪ-SSS.
А через некоторое время — появился анонс в его блоге. Который, помимо всего прочего, содержит ссылку на скачивание самой демки на DX10. Кстати, настоятельно рекомендую скачать (Precompiled demo) и поиграться с SSS самостоятельно. Что и сделали многие CG-шники…
После чего выяснилось, что SSS, конечно, и впрямь честный. Вот только он не совсем реалтайм. При сегодняшних мощностях железа на компе среднего игрока в разрешении как минимум фуллХД — частоту кадров ну никак нельзя считать хотя бы просто приемлемой.
Так что, как говорится, «пооблизывались — и хватит».

Основой же для S-SSS стал SS-SSS, опубликованный несколько ранее. Я, честно говоря, не вникал в различия между ними, т.к. обе технологии пока что применять рано: слишком прожорливы. Но то, что S-SSS выглядит корректнее, чем SS-SSS, на мой взгляд, очевидно.
Впрочем, не менее очевидно, что за ними будущее.



DoF Есть в меню

Depth of Field, глубина резкости… так, вот только не надо тут про «мыльное кинцо»!

Так уж решила природа, что человеческий глаз — фокусируется. Научно-технический прогресс ушёл далеко вперёд, и фотоаппараты с видеокамерами уже давным-давно могут снимать абсолютно резкое изображение. Вот только оно никому не нужно.
DoF придаёт картинке «киношности». Он позволяет акцентировать внимание зрителя на наиболее важном объекте. По сути, именно глубина резкости превращает унылые говнофоточки для вконтактика в «профессиональные фотографии».
Расфокус настолько необходим в кино, что даже если его не было в оригинальном видео — его искусственно туда добавляют. В чём можно убедиться, глянув любой брэйкдаун от любой крупной VFX-студии. Например, вот красивый от Blur (очень хорошо видно в самом конце).
Так что брюзжат насчёт «мыла» лишь те, кто не знает, к чему бы придраться.

Попытки воссоздать Depth of Field в играх начались настолько давно, что… нет, ты не поверишь. Лучше я просто покажу скриншоты. Открой их в полном размере — и ужаснись, что творится на бэкграунде.
Нет, это не «паршивая текстурка» на фоне с изображением домиков. Это реальные, полигональные домики, которые потом искусственно размыты. Качество размытия — ну, какое уж было в 2003 году.
В далёкие нулевые, будучи школьником, я люто фапал на Devil May Cry 3 (да и до сих пор обожаю эту серию, включая перезапуск). Консолей у меня отродясь не было (о чём порой жалею), но третья часть DMC вышла на ПК — и была затаскана мной до дыр. Сперва — пиратка с вырезанными роликами, потом — более «кошерный» репак (сейчас она у меня куплена в стиме, так что всё ОК).
Так вот, в очередной раз перепройдя DMC (на тот момент — единственный для ПК), мне захотелось MOAR. Стал искать, чего же такого подобного выходило от того же издателя. Нашёл — только Chaos Legion.
Представь, каково же было моё удивление, когда я установил честно купленную «лицензию» с диска от Акеллы (если не ошибаюсь) — и увидел ЭТО.

Сейчас, после многолетнего опыта работы с графикой (в том числе — игровой), я прекрасно понимаю, чего тогда хотели добиться авторы. И почему оно у них не получилось. И что именно благодаря такому вот «первому блину» у нас сейчас есть действительно красивый DoF.
Но в то время эта игра мне запомнилась в первую очередь «отстойным графоном с текстурками низкого разрешения».

Несмотря на кошмарный внешний вид, это ровно та же технология, которая использовалась в играх до прихода нынешнего некст-гена. А именно,…

Размытие по карте глубины


Да-да, тот самый Heavy Rain, который породил само понятие «мыльное кинцо», и стал «лицом» этой технологии. Хотя она применялась и до него (как я уже продемонстрировал), и после. Менялась форма размытия, менялось его качество, менялись способы перехода от фокуса к расфокусу. Но суть оставалась прежней.
Есть исходная (резкая) картинка. И к ней есть карта глубины.
Берём первую — и размываем её по второй. Где на карте глубины белое — там максимум размытия, где чёрное — там его нет (фокус).

Как говорится, всё гениальное — просто. Улучшая различные аспекты этого метода, игроделам в итоге удалось сделать довольно убедительный расфокус.
Вот только у него есть 2 неустранимые проблемы:
1. прозрачные объекты размываются некорректно, т.к. каждый пиксель имеет только одну позицию по глубине.
2. на границах объектов размытие тоже получается некорректным: либо цвет переднего плана «заезжает» на фон, либо наоборот.
В результате — игровым девелоперам приходилось совершать «сделку с совестью»: сам эффект расфокуса добавлять, но делать его очень слабо выраженным. Чтоб эти проблемы не сильно бросались в глаза.

Bokeh


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



HDR Есть в меню

Ой, сколько слухов насчёт этой технологии и вводящих в заблуждение скринов гуляет по инету!
Кто-то убеждён, что её назначение — засвечивать картинку. Кто-то — и вовсе путает её с bloom-эффектом. В чём, кстати, виноваты сами игроделы, потому что ставят 2 этих параметра в один пункт меню.Fallout 3:

Oblivion:

FarCry:

Значит так. Давай всё с начала.
HDR — это High Dynamic Range. Высокий динамический диапазон.

В природе нет такого понятия, как «макисмально яркий свет». Свет может быть любой яркости: от ноля и до бесконечности. Когда мы видим какой-то цвет как абсолютно белый — это лишь значит, что в данный момент наш глаз выбрал эту яркость в качестве максимальной, чтобы разглядеть какие-то детали. С примером будет понятнее.
Так обстоят дела в природе. А теперь давай посмотрим, что творится в играх.
Есть текстурки. Это обычные картинки в формате jpg/png/tga. У них есть чёрное и белое значение, и некоторое количество оттенков между ними. Всё.

А теперь давай представим такую ситуацию. Допустим, у нас есть некоторая яркая текстура.Но по какой-то причине нам надо понизить её яркость. Что мы хотим получить?
Потому что в картинке максимально яркий — это белый. А всё, что ярче него — обрезано до него. И после нашей обработки — превратится в сплошной серый вместо того, чтобы «открыть» нам те детали, которые находятся в пересвеченной области.

Поэтому если картинка считается «по-обычному» (т.е., через LDR, Low Dynamic Range) — то
Так что же такое HDR? Как ты, наверное, догадался, эта технология расширяет диапазон возможных цветов. С ней — они могут быть ярче единицы. То есть, если отрисовать такую картинку «как есть» — то эти «сверх-яркие» цвета тоже будут выглядеть как максимальный белый (потому что монитор не может выдать цвет ярче). Но на самом деле их фактические значения — не обрежутся.
Поэтому с HDR:
Помимо очевидного повышения реализма «в одно включение» эта технология также позволяет крутить яркость картинки на стадии пост-эффектов.
Ну то есть, при самом простом раскладе — с её помощью можно сделать эффект смены экспозиции (также известный как Tone Mapping). Это когда картинка плавно меняет яркость при переходе из тёмного помещения в светлое или наоборот.
Но это лишь самый простой пример. При наличии HDR гейм-девелопер ничем не ограничен в пост-обработке, и может творить всякие красивости с картинкой, чтобы сделать её ещё более выразительной (это называется цветокоррекцией).

Так что если в какой-то игре после включения HDR всего-навсего появляются пересвеченные области и больше ничего — это говорит лишь об одном: у разработчиков малость кривые руки.



Enlighten Нет в меню

В далёком 2007 году в один прекрасный момент никому не известная компания Geomerics опубликовала вот этот трейлер.
Невероятная по тем временам фича рассеянного освещения поразила умы многих. Этот трейлер даже попал на диск одного очень популярного тогда в России игрового журнала (сделаем вид, что ты не догадался, о каком журнале речь :) ).
Однако на момент этого анонса железки ещё не позволяли считать такое в реалтайме с комфортным FPS. Но разработчики не забросили свою затею, а ушли на некоторое время в подполье, и в 2008 году явились миру на GDC

Тебя сейчас, наверное, волнует резонный вопрос: нафига я это тут расписываю? Ведь в прошлой части я и так уже упоминал о рассеянном свете через Voxel Cone Tracing.
Дело в том, что с 2008 года время шло, разработчики с нарастающим энтузиазмом показывали всё новые и новые демонстрации:
… и в итоге мы сами не заметили, как эта технология стала мэйнстримом. Т.е., в отличие от Voxel Cone Tracing, который не был применён пока что ни в одной игре, рассеянный свет от Geomerics — уже стал де-факто стандартом.
Showcase игр с Enlighten от самих Geomerics

Итого, что мы имеем сейчас? Два из трёх основных «поставщиков графона» — Unreal и FrostBite — используют Enlighten (про CryEngine я просто не в курсе). Недавно анонсированная Unity 5 — тоже будет иметь его в поставке.
Вот так, безо всяких DX11, по принципу «капля камень точит», можно единолично занять всю нишу, просто постоянно шлифуя свою технологию. Даже если в начале она кажется не очень применимой.



Motion Blur Есть в меню

По-русски, размытие в движении.
Как и DoF, этот эффект добавляет реализма. И, опять же, как и DoF, для хорошего качества исполнения требует немало ресурсов. Кроме того, в отличие от расфокуса, этот эффект прям-таки необходим: без него видео будет казаться дёрганным.

Вообще в графике есть несколько способов рендеринга Motion Blur. Но конкретно в играх — практически всегда используется лишь один: Multiple Exposure. Он настолько «дефолтный», что многие игроделы даже не знают этого названия, считая, что это вообще единственный способ получить MB.
Каждый кадр рендерится не один раз в один момент времени, а много-много раз, которые равномерно распределены по всей длительности кадра.
Потом все эти экспозиции смешиваются вместе с разной степенью интенсивности.
Получается, что вместо одной фазы движения мы засняли несколько, которые все вместе формируют нужный нам эффект размытости.

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

Кроме того, не надо забывать, что каждая такая экспозиция — это, по сути, отдельный расчёт кадра кадр. Т.е., если у нас 4 экспозиции — та же самая картинка будет считаться в 4 раза дольше. Если 8 — то в 8, и т.п.
Конечно, игроделы стараются как могут, чтобы уменьшить падение производительности. Например, заставляют все шейдеры считаться только один раз для всех экспозиций. Но всё равно при использовании этого вида Motion Blur — игре нужно в разы больше вычислительных ресурсов.

Может показаться, что этот метод плох из-за своей неповоротливости. Но на самом деле нынешнее железо вполне в состоянии пересчитывать кадр по 2, 4, 8 и больше раз. А при большом количестве «шажков» — этому методу нет равных. потому что считается он самым «дубовым» методом, и оттого — самым правильным. Если не считать этих «ступенек» — с ним в принципе невозможны артефакты, которые есть у других методов.
Во «взрослой» же графике гораздо чаще используется другой способ — векторный Motion blur.Картинка рендерится только один раз. Но помимо неё — «невидимо» для игрока также считается специальная карта векторов.Она показывает, в каком направлении двигается каждый пиксель на отрендеренной картинке.
После чего основная картинка «размазывается» в соответствии с направлениями (векторами) со второй карты.

Прелесть этого метода — в том, что на нынешнем железе его уже можно использовать, и при этом он выдаст гладкую картинку, без фаз движения. Ах да, и у него нет никакого «количества экспозиций», так что качество размытия всегда безупречное, не надо жертвовать ради него производительностью.
Но есть и минусы. Самый серьёзный из них — это специфические артефакты.Представь ситуацию: один объект движется очень быстро перед вторым. Игра считает картинку только один раз, в какой-то одной фазе. И в этой фазе — движущаяся часть закрыла неподвижную. Алгоритму просто неоткуда взять информацию о том, что должно быть за этой частью. В результате:А в компании с DoF'ом — начинается вообще форменное безобразие.
Именно из-за них я совершенно не удивлялся тому, что в играх используется только метод множественной экспозиции… во всяком случае, я так думал.
Во время написания этой статьи я наткнулся на скрины MB в Last of Us. И, судя по характерным артефактам, там используется
Есть, правда, у векторного блюра один подвид, который в играх используется очень широко. Так называемый Zoom Blur (aka Radial Blur): это когда векторы размытия направлены от центра кадра к краям.

Что ещё хотелось бы сказать про Motion Blur — как и DoF и любые другие виды размытия, он расцветает во всей красе при включённом HDR. Если, конечно, последний реализован не «для галочки».

И последнее. CryTek известна своей любовью к последним версиям DirectX. И активно призывает нас их использовать.
Вот только в случае с MB — лично я не вижу ощутимой разницы, чтобы только ради него переключать игру на DX11. При включённом HDR — Motion Blur в DX9 и DX11 выглядит практически одинаково:


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

Лично у меня практически никогда (за очень редкими исключениями) просто язык не поворачивается выдать что-то в духе «игра говно, графон не завезли». Потому что даже весьма средненькая по нынешним меркам игра — это такой «дистиллированно-прессованный» графон, что грех жаловаться.

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

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

Лекс Дарлог 30 марта 2014, 4:16
Спасибо всем, кто поддержал первую часть моего рассказа.

Как и обещал, публикую продолжение. Сперва хотел рассказать вообще обо всех технологиях, которые появились за время паст-гена. Но опять понял, что «не укладываюсь в хронометраж». Поэтому разбил на 2 куска: «Апофеоз Past-Gen'а» и «Заря Past-Gen'а» (которую ещё только предстоит написать, но список тем — составлен).

В прошлой части народ просил поподробнее. Поэтому в этот раз я старался излагать менее популярно и более конкретно (с большим количеством технических деталей).
Хотелось бы знать, какой формат вам больше нравится. Я-то могу рассказывать — хоть вообще с формулами и кодом шейдеров. :)

Так что прошу проголосовать вот тут:
Формат какой части тебе больше понравился?
vladik78siberia 30 марта 2014, 12:56
Огромное спасибище еще раз. Технические детали нисколько не мешают :) А примеры замечательные, так что все очень понятно и живенько. Так что да, тема интересна, жду следующих постов.
Лекс Дарлог 30 марта 2014, 17:29
Как закончу серию этих статей — думаю написать на тему «консоли vs пк с точки зрения девелопера». Без купюр, так сказать.
Но это ещё пока под большим вопросом.
lonerz 30 марта 2014, 11:47
вот кого надо благодарить за наш сегодняшний графон


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

Они любили джунгли задолго до «Крузиса», ещё с техно-демки X-Isle. ;)
Лекс Дарлог 30 марта 2014, 16:19
Во многом согласен с Albustani.

5tyle, помимо этого я лично считаю эти «рамки» полезным ограничением. Не было бы их — не было бы серьёзного повода так извращаться и изобретать новые танцы с бубном.
Albustani 30 марта 2014, 14:40
Да, разработчикам на игровых консолях приходится со временем туго и их притесняют мощности, так как игровые приставки выпускают со скудной периодичностью в несколько лет, из-за чего технологии тормозят. Но с другой стороны большая часть играющего населения нашей планеты играет именно на приставках, не заморачиваясь с апгрейдом своего ПК. Потому что, например, та же PS4 стоит в разы дешевле, чем ПК схожей мощности. К чему веду? А к тому, что если бы не было игровых приставок, то людям периодически пришлось бы заморачиваться с апгрейдом своего ПК, чтобы хотя бы на минималках пройти новую, «графонистую» игру, из-за чего интерес к играм был бы не таким, как сейчас, так как не каждый готов раскошеливаться на новые комплектующие для своего ПК.
Так что, на мой взгляд, игровые приставки сделали игровую индустрию очень значимой в мире, так как игровая индустрия стала более доступной для людей. Поэтому игровая индустрия развивается и двигается вперед, так как интерес к игровой индустрии не утихает из-за наличия огромного числа потребителей контента. Вот такое ИМХО.
Лекс Дарлог 5 апреля 2014, 23:05
То, о чём ты говоришь — это проблема не ограниченности ресурсов, а алгоритмической сложности. Чем больше участников битвы, чем сложнее и «открытиее» локация, чем больше вариантов взаимодействия — тем сложнее писать ИИ.
Технически что 2 NPC, что 4, что 10 — отжирают примерно одинаково по ресурсам. Тем более если учесть, что у них наверняка общие анимации, текстуры, а порой — и геометрия. Если имеются качественно сделанные LOD'ы, то можно спокойно повышать количество персов в 10 раз. Чисто графически — оно отрендерится без проблем.

Но вот теперь заставить их всех адекватно себя вести — вот проблема. И она вызвана вовсе не тем, что «памяти на текстурки не хватает» или «полигонов слишком много». А тем, что «в лоб» посчитать взаимодействие всех активных объектов (коими и являются неписи) — требует геометрически большего количества ресурсов по мере увеличения количества этих объектов. И тут — 2 варианта: либо девелоперы искусственно ограничивают возможности (облегчая тем самым написание игровой логики), либо — на разработку качественного ИИ можно вбухать килотонны бабла и немеряное количество человеко-часов.

Есть один пример игры, которая стремится воплотить в жизнь гигантскую вариативность вместе с бесконечно адекватным поведением ИИ. Эта игра — Dwarf Fortress. Сам погугли, сколько времени уже её разрабатывают и на каком уровне там выполнены сами ассеты (графон).

Реализовать то, что ты хочешь — можно. Но на это уйдут годы программирования, и на выходе будут просто бегающие по экрану пиксели. Потому что на всё остальное просто не хватит ни времени, ни денег.
StRandom 5 апреля 2014, 18:54
Чувак, ты просто охрененен! Я собирался создать акк, но внезапно вспомнил, что у меня есть, так что вот тебе плюс!:)
Технические детали не мешают, и вполне понятны, как примеры скринов, так и эти ваши программистовские «карты векторов» и иже с ними. Как студенту-физику (в оптике чуток шарю) было интересно прочитать в особенности про сравнение реальной картинки, видимой глазом, с тем, что можно получить программными средствами!
Можешь прямо с этого косаря начать копить на свою маленькую CG-компанию — уж больно грамотно на мой неискушённый взгляд рассказываешь:)

Спасибо, и ~ wait for it! wait for it! ~ ПИШИ ИСЧО!!11!
Лекс Дарлог 31 марта 2014, 16:35
Да ладно?
Как говорится, «не бывает много полигонов, бывает мало приближения».
Консоли-то, наверное, могут крутить по 40-50к (хотя я, честно говоря, впервые слышу такую цифру: в нашей игре мы придерживаемся лимита в 1.5-2к на перса, и она для ПК). Но, в идеале, нам ведь нужно отрисовать не только 10 метров вокруг персонажа, а вообще весь уровень до горизонта.
И если всё сделать такой детлизации, чтоб можно было разглядывать в упор — то можно с ума сойти, подготавливая лоды.

Мне, как девелоперу шейдеров, гарантированная поддержка тесселяции на компе игрока — сэкономит уйму времени, сил и нервов, а как результат — повысит качество картинки.
Jakie 30 марта 2014, 11:32
Я слежу за тобой, подозрительный усач ._____.

Спасибо за пост кстати. В своё время очень долго мучался с настройками графики, банально не зная что включаю и что выключаю. По крайней мере не буду более тупить над bloom-эффектом
Владимир Чуркин 5 апреля 2014, 20:35
Тут вопрос не про «жить». До конца 80-х жили в изоляции, да. Можем и сейчас. Но слишком многим придется пожертвовать — в т.ч. и играми
ListeRStorM 13 апреля 2014, 23:22
Потому что, например, та же PS4 стоит в разы дешевле, чем ПК схожей мощности.

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

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

Согласен, с одной стороны это хорошо, и это хорошо для более чем половины ПКашников которые образно выражаясь сидят на «селеронах», но с другой стороны имхо настоящий «Crysis» выходящий раз хотя-бы в пару-тройку лет все же нужен, имхо АМД и Нвидиа должны проплачивать выпуск мега графонистых игр дабы продавать свои термоядерные железки, которые до сих пор некому не нужны, ибо некстген оказался пшыком.
Akirus 30 марта 2014, 18:36
Не забывайте что консоли подняли популярность игр достаточно высоко. среднестатический геймер на которого ориентируются игроделы это не геймер с мышкой и клавиатурой а геймер с джойстиком в руках. Которому не нужно смотреть на конфигурацию компа, копатся в настройках и прочее, а нужно всего лишь вставить диск в консоль. Без консолей аудитория игроков была бы гораздо меньше. Это легко можно понять просто посмотрите % продаж игр на ПК и на консолях.

Читайте также