Показать все 7 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Компьютерные игры (https://hlfx.ru/forum/forumdisplay.php?forumid=19)
-- Современная культура в общем и игры в частности - Часть 2 (https://hlfx.ru/forum/showthread.php?threadid=5130)
Современная культура в общем и игры в частности - Часть 2
Я за один вечер подновил бета-версию статьи, которую написал в 2015м, так что просьба тапками не бить.
Позже возможно перепощу на КСМ всё это, как ДМ просил когда-то.
(пока ещё продолжение предыдущей статьи)
special effects are cheap
they do that in real action now
it cost less than animating shit
Ретроактивный фашизм по отношению к «эпохе баланса»
«Эпохой баланса» (веком Кармака, бесшейдерной, diffuse-эрой, периодом чёткой графики) можно назвать период примерно 1996-2005 года, от выхода демки Quake (или, если копнуть глубже, неиграбельной демки Into The Shadows) до премьеры Xbox 360 в конце 2005 года.
Как вы знаете, в последние годы индустрия развлечений на волне кризиса идей начала периодически порождать экранизации игр. Причём это могут быть как переложения конкретного продукта или франшизы, так и кусочки в каких-то других фильмах, реконструкция виртуального пространства «по мотивам», где и происходят приключения главных героев.
Однако интересным здесь является как раз то, какие именно проекты выбираются для экранизации. Сделав небольшую выборку мы поймём, что обычно экранизации подвергается либо сущеглупый бред из 80-х вроде Марио, Змейки, Тетриса, Понга, (а про Sword Master и Solbrain не помнит почти никто) или того виртуального пространства в Детях Шпионов 3D, (являющегося квитэссенцией индустрии ушибленной Нинтендо), либо же уже чисто коммерческие продукты Xbox 360-индустрии, с лучницами в простыне и ХЫА-мужиками, типа Воркрафта, Assassin’s Creed… а, ну и Angry Birds. Сложные, комплексные же игры вышеупомянутого периода, где для заснятия любой сцены нужно построить или смоделировать дорогостоящие декорации, для экранизации просто не берутся. Из-за этого у многих людей, далёких от гейминга, должно быть создаётся впечатление что таких игр нет вообще.
Также можно заметить, что в вышеперечисленных случаях у экранизуемого материала либо практически нет игровой вселенной, например как в играх 80-х, либо она является типичнейшим и унылейшим ушастым фэнтези или ассасинскридом, как в экранизациях недавних продуктов.
Ещё раз скажу, что все вышеперечисленное является просто различными следствиями одного и того же явления – потери баланса. Ну или де-романтизации, очищения от шелухи, выделения сути. Называйте как хотите. Странно только, что в этом процессе «очищения» сама графика, наоборот, поросла толстым слоем совершенно ненужных, чисто декоративных, а то и откровенно вредных для картинки вещей.
Статья 2
Детализация и палитра картинки в играх
Симачёв-бар
(детализация картинки)
Не менее важным вопросом также оказывается детализация картинки и её роль в общем восприятии. Вопрос этот тоже многогранный, и поэтому разбирать его мы будем по частям.
Для начала давайте определимся с тем, что такое детализация вообще, и детализация на экране (на картинке) в частности. Под детализацией я понимаю разность между значениями цвета двух соседних пикселов экрана. Если она разная, то на экране визуально появляется новая деталь. И наоборот, если два пиксела отличаются, скажем, насыщенностью, более насыщенный из которых стоит по этому параметру на самом краю шкалы, а другой отстаёт скажем на 20 единиц, то после прибавления насыщенности на 20 единиц и больше то цвет двух пикселов совпадает и деталь теряется, и чем больше, тем сильнее детали на картинке начинают исчезать (в то же время, если какая-то деталь слишком выделяется, то возникает весьма любопытный, обратный эффект, о котором мы ещё поговорим).
Теперь к играм. Степень детализации цифрового изображения ещё до его вывода на устройство отображения, исторически изменялась в играх нелинейно и не последовательно. В эпоху 2D она только росла, но её реально сдерживали то блёклые и мутные телевизоры, то малоцветные мониторы, то, наоборот, несовпадение региональных стандартов давало чёрно-белую картинку, которая внезапно оказывалась толи более детальной, но скорее просто более чёткой чем её цветные аналоги, но от этого не менее атмосферной. (разная глубина цвета, насыщенность, а также их влияние на атмосферность - это вообще отдельный сложный вопрос, который я, надеюсь, разбирать не буду, ибо надоело)
Так или иначе, на консолях и IBM PC 2D-арт выглядел довольно непритязательно, как и средства его вывода на экран - 64К цветов, 320*240 при полной Луне, ну знаете. (помню, играл в Дюка на 800*600 SVGA, но Дюк был позже, да и арт в меню всё равно был в минимальном разрешении)
И где-то примерно в этот момент вышел Wolf3D. Несмотря на революционное изменение в графике, детализация картинки возросла не особо, и причиной тому было не только отсутствие текстур у пола и потолка, но и палитровые, мультяшные по сути текстуры низкого разрешения, у которых сравнительно крупные области были закрашены одним цветом. И эти ограничения сыграли скорее на пользу игре, потому что если бы не они, детализация картинки возросла бы взрывообразно.
Дело в том, что информация, которую игра изначально предоставляет видеокарте, очень избыточна, и будучи передана на монитор в максимально нетронутом виде, просто после преобразования в из мировых координат в координаты камеры, выливается в зашумлённое, дрожащее и мигающее изображение, на которое больно смотреть. Но, как ни парадоксально, именно такая картинка отличается наибольшей детализацией и наиболее чистыми цветами, по минимуму смешанными друг с другом.
Хорошим примером является игра King's Field для PlayStation, из-за специфически четких и контрастных текстур представляющая собой мигающий текстурный ад.
Детализация здесь просто рвётся наружу, но за непоследовательностью представления (сейчас к экранному пикселю ближе один текстурный, потом - другой) и невозможностью мозга обработать её всю она воспринимается нами как шум.
Это могло ожидать и Wolf3D, будь игра чуть более революционной, и после отработанного гладкого 2D особенности такого 3D должны были быть заметны на контрасте, что и ожидало вышедший позднее Doom и Quake. Однако после Wolf3D люди уже привыкли к такой картинке, со всеми её недостатками.
Уже в графике года 97-го на ПК появилось много технологий, которые мы сейчас воспринимаем как должное: текстурное сглаживание, мип-маппинг, перспективное наложение текстур (в противоположность аффинному), трилинейная фильтрация, краевое сглаживание, вертикальная синхронизация, высокое разрешение в конце концов. Долго ли коротко ли, в какой-то момент выходит игра, в которой ничего уже не дрожало, потому что она полностью поддерживалась 3D-акселератором. (Quake 2 или GLQuake, или Unreal) Но, как ни странно, именно в этот момент детализация и чистота цветов в картинке резко упала.
Потому что все эти техники, по сути, являются приёмами для сжатия с потерями, и обеспечивают щадящую упаковку избыточного количества информации - содержащейся в сырых данных для построения кадра, или в кадре, непосредственно построенном на сырых данных - в тот вид, который более привычен человеческому глазу и мозгу, потому что глаз подготовлен к тому, что упаковка тех же данных уже произведена законами физики реального мира, самостоятельно же он почти ничего упаковывать не умеет.
Цвета «напрямую»
Существует такой интересный эффект: если взять любую картинку и обработать её фильтром Sharpen, то вам покажется, что она стала ярче, а цвета стали более чистыми, и "колючими". Похоже что это наш психологический эффект восприятия, но не только. Дело ещё и в том, что фильтр по сути частично компенсирует эффект от предыдущих манипуляций с изображением. Но от каких манипуляций? Если говорить об игре, то даже в случае простейшей фильтрации текстур - пикселам экрана не попавшим идеально в центр соответствующего текселя присваивается некоторое усреднённое цветовое значение. И при краевом сглаживании цвета пикселей на границах полигонов тоже усредняются или по крайней мере как-то меняются. И вся собака зарыта в том, что усреднение между собой двух достаточно разных цветов, субъективно не являющихся оттенком одного чистого зелёного к примеру, выливается в падение яркости и насыщенности конечного цвета по сравнению с любым из исходных, а точнее в стремление этих значений к середине шкалы, т.е. к 128. А что такое цвет с яркостью и насыщенностью на 128? Серый. Поэтому при любом даунсемплинге картинки и многих других преобразованиях картинка становится серее. И не мне вам говорить, что между кадром из оригинального Doom и кадром из какого-нибудь аппаратно ускоренного порта типа ZDoomGL таких преобразований очень много, а соседствующих родственных цветов на текстурах, которые после фильтрации потеряли бы лишь небольшую долю оттенка, далеко не так много. Поэтому фильтр Sharpen по сути возвращает нам некоторое фейковое подобие тех исходных цветов, которые могли быть на текстуре и в кадре, будь этот кадр с движка типа думовского.
Духи предков
Из перегруженности нефильтрованной графики детализацией происходит ещё один интересный эффект. Представьте что вы находитесь в каком-нибудь насыщенном контурами окружении - в лесу, на болоте, в высокой траве и так далее. В таких местах обычно полутьма. При движении восприятие далеко расположенных объектов у вас будет хаотичным и несвязным из-за того что ваш мозг не сможет нормально произвести нахождение контуров объектов, в основном из-за их сложной, непривычной формы, малого размера и неясного расстояния до них. (или это отсутствие привычки у современного городского человека?) Однако мозг всегда ищет контуры, это необходимо для выживания, поэтому время от времени он будет давать вам ложные сигналы, заставляя видеть в кустах какие-нибудь лица и прочие глюки наводящие жуть.Таким образом, у человека перегруженность контурами, чувство опасности и загадочности, а также полумрак тесно связаны между собой. И не точное ли это изображение старой игры без освещения, с мельтешащими текстурами, сливающимися на удалении в нечто неясно колыхающееся, подобно воздуху над дорогой или мерцающим звёздам? Это замечательная пища для воображения, при условии что у вас сохранилась ещё привычка воображать. В связи с этим даже какой-нибудь Майнкрафт с нефильтрованной графикой, и тот обретает свою долю привлекательности.
Цветовая кодировка
До массового внедрения шейдеров в 2005 году у разработчиков не было возможности показать свойства поверхности при помощи какого-то динамического эффекта, (отдельные блокбастеры и энтузиастов мы не учитываем) поэтому им приходилось целиком полагаться на статические эффекты, то есть и не на эффекты вовсе, а на сами текстуры. Так возникло нечто, что можно назвать цветовой кодировкой окружения. Это когда свойства поверхности ярко выражены её цветом, причём его насыщенность, опять же, позволяет назвать его именно цветом, а не оттенком серого.
Сам цвет подбирается на основе наивных стереотипов, с детских лет сидящих в нашей голове: вода синяя, небо голубое, солнце жёлтое, земля-коричневая либо равномерно зелёная, если поросла травой, пустыня жёлтая, камни серые, лёд и снег белый, злые чары-фиолетовые, небо раскрашено галактиками и туманностями наркоманских цветов. После этого, в зависимости от приоритетов разработчика, цвет может корректироваться чтобы лучше сочетаться с другими текстурами и с какими-то идеями игры. Негативной стороной этого подхода можно назвать то, что после тонкой доводки многие цвета становятся похожими, как в Морровинде и Deus Ex. Но без этого никак, ведь без тонкой доводки игра выглядит аляповато, в стиле средневековой книжки, и раздражает слишком уж яркими цветами. А вот в случае с хорошей игрой где игрок проводит в ней более-менее много времени, его мозг адаптируется и тогда даже неяркие, похожие цвета становятся хорошо различимыми.
К плюсам цветовой кодировки можно отнести то, что она играет на атмосферу, тем или иным цветом запуская у игрока в мозгу нужный набор ощущений и стереотипов, например тактильных и звуковых. Упор здесь делается на детские впечатления, а также на память и воображение играющего. Также изображение становится более контрастным, по идее попадая в тот интервал, когда на картинке уже не так трудно различить что-то, как в градациях серого, но в то же время оно всё ещё не так сильно утомляет глаза, как кричащие супер-яркие цвета. (а может дело совсем не в цветах, а в контурах???) Да и в случае какого-то аврала игрок всегда может сориентироваться по цветам, когда глаз не успевает полноценно обходить контуры в кадре.
Равномерность контуров
Сами контуры тоже являются интересным вопросом для обсуждения. Вообще, что такое контуры? Детализация кадра, то есть границы между пикселями разного цвета, очевидно, не воспринимается нашим мозгом в сыром виде. Мы существа аналоговые, поэтому и цифровые изображения на экране потребляем в аналоговом виде, т.е. в виде контуров. Контурами мы, видимо, считаем на экране цепочки границ, по разные стороны от которых пиксели достаточно различны. Причём различие это должно быть в первую очередь по яркости, так как наши глаза наиболее чувствительны к ней.
(кстати, разные оттенки одинаковой яркости визуально выглядят как оттенки разной яркости, что поднимает вопрос о существовании цвета как такового)
Ну и, как известно, при рассматривании картинки наш взгляд обходит видимые контуры по довольно-таки непредсказуемой траектории, слабо объяснимой с помощью бытовой логики, хотя и начиная, ожидаемо, с более выраженных контуров и заканчивая более мелкими.
Какие же конкретно механизмы порождают те или иные контуры на отрендеренной картинке? Первой мыслью будет сказать, что контуры образованы текстурами. Но в играх текстуры обычно тайлятся, и поэтому наличие любой бросающейся в глаза (опять же, по яркости) детали будет немедленно замечено, потому что даже на небольших по размеру поверхностях его повторение будет хорошо заметно, создавая эффект кафельной плитки. Поэтому ярко выраженных деталей на хороших текстурах быть не должно (кроме случаев когда вы делаете какою-нибудь рукотворную среду типа парка развлечений) а значит любая хорошая текстура представляет собой более-менее равномерный (а значит, что немаловажно, хорошо сжимаемый) узор, который особо не порождает визуальные контуры.
Это значит, что, по большому счёту, в кадре резкие скачки в цвете могут быть только трёх типов:
1. это контуры, образованные сменой яркости текстур
2. это контуры, образованные сменой яркости освещения, например лайтмап (в общем-то, тоже, псевдо-текстур)
3. это контуры, образованные геометрией
Геометрические контуры до сих пор обычно грубые и ломаные, в основном из-за разных труб и зданий, в отличие от текстурных, которые даже в 90-е можно было нарисовать размытыми и гладкими. (иногда избыточно гладкими чтобы сгладить Software-картинку) Более того, текстурам за счёт низкого разрешения как раз и приходилось быть гладкими, и чёткими их получилось сделать не так давно. Поэтому контуры образованные геометрией и текстурами всегда образуют как бы два разных слоя картинки, сравнительно легко отличимые друг от друга. Мы не имеем в виду какие-нибудь перепечатки скриншотов в газетах 90-х годов, разумеется. Там легче видно шестиугольную сетку, чем что-либо ещё.
Это различие в контурах текстур и декораций, как я уже сказал, хорошо различимо, что скорее является минусом, так как нам необходима цельная картинка, этим самым похожая на реальный мир, где никаких текстур нет. И здесь возникает проблема. Собственно, текстурам всегда разрешалось давать гладкие контуры по той причине, что ответственности на них было мало, текстуры не имели функционального значения для игры, они именно что всего лишь двухмерный массив значений, без вытекающих последствий. Их можно раздувать сколько хочешь без опасений что из-за беспорядочной коллизии игрока об новые чёткие трещинки на текстуре у разработчика возникнет необходимость переделывать пол-игры. В то время как трёхмерная геометрия выступает инструментом для расчёта столкновений, физики, видимости, рассеянного освещения, искусственного интеллекта, разрушаемости, и чёрт знает чего ещё, текстуры просто создают некоторую атмосферу в кадре, чтобы создать ту же атмосферу в нашем мозгу. (дописать про происходящее в мозгу кстати) В силуэте персонажа текстура занимает 90% места, а сама геометрия прячется за цветовыми переходами текстур (до сих пор не могу привыкнуть к мысли, что важна в основном яркость, а не сам цвет) и от геометрии в результате реально заметны только полигоны, формирующие силуэт. По этим двум причинам повышение разрешения и качества текстур считается предпочтительным по сравнению с детализацией геометрией, и потому же текстуры улучшались в тех случаях, когда средняя плотность геометрии не менялась. В конце концов, люди всегда жили в коробках, и их наличие в игре никого не смущает.
И вот со временем наметился очевидный разлом между качеством текстур и качеством геометрии, примерно как это было на Nintendo 64, только наоборот. Наглядно разлом проявился в одном из последних (наверное не случайно) брашевых движков Source. Вы довольно легко можете узнать сорсовскую картинку даже без фирменных засветов и желтизны, просто на том основании, что она выглядит как десять огромных бритвенно-острых полигонов, обтянутых текстурой космического разрешения. Если где-то светит лампа и пятно света от неё прерывается там где освещённая стенка заворачивает за угол и неестественно резко обрывает освещённую грань, то характерность освещения проявляется особенно резко. Всё бы ничего, но на текстурах и тем более на лайтмапах, не бывает таких резких переходов, поэтому такая картинка начинает смотреться как поделка из узорчатой бумаги. Это ожидаемо контрастирует с графикой старых игр, где бедность текстур гармонировала с бедностью геометрии, и всё вместе смотрелось как цельная картинка. По сути получается смешно, высокодетальные текстуры всегда смотрятся некрасиво в городском сеттинге, потому что им нужна высокодетальная геометрия, а человек живёт в коробках. И только в случае с деревянными строениями, кирпичной или каменной кладкой, ситуация немного выправляется.
Я думаю, даже можно вывести зависимость для этой гармонии, соотношение разрешения текстур и количества ребер полигонов в кадре на границе объектов либо на границе разных текстур. Что-то типа «пикселов на ребро».
Пришествие шейдеров
Следующим ударом по детализации кадра стал выход Xbox 360 в ноябре 2005 года. Он открыл собой новое поколение приставок, которое принесло с собой шейдеры, как для отдельных текстур и объектов, так и для всей картинки... Впрочем, сама картинка на экране теперь тоже существовала в каком-то трёхмерном пространстве и была просто текстурой натянутой на квад, или чёрт его знает.
Одним из плюсов нового поколения стала, наконец, полная и честная реализация правил поколения старого: мип-маппинг стал наконец-то более или менее непререкаемым стандартом. Потому что даже в некоторых не очень качественных играх на PS2 вышедших в одновременно с X360, мипмаппинга либо не было, либо мип-уровней просто не хватало. При этом краевое сглаживание, обещанное ещё на PS2, стандартом в поколении X360 так и не стало, оставаясь роскошью. Появилась красивая вода. Даже бамп и нормалмап сами по себе были хороши. Также возросло разрешение текстур, рельефное текстурирование наконец нормально заработало спустя 13 лет... и вот тут всё становится сложнее.
Кроме несомненных плюсов в количественном плане типа разрешения текстур и т.д., в качественном плане графика шейдерного поколения отстаёт если не по объёму деталей в кадре, то по количеству визуально различимых отдельных объектов уж точно.
Итак, шейдеры. Появившиеся шейдеры могли применяться, по сути, просто к конкретной текстуре, с учётом ещё пары вспомогательно идущих "параллельных" текстур, например к текстуре объекта с учётом параллельно рельефа и спекуляра, или к текстуре самого кадра параллельно с учётом глубины кадра. (т.е. того же самого рельефа)
И всё бы ничего, но воплощение новых фишек стоило немалых денег, в то время как эффект, который они привносили в кадр, был не так уж и велик.
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Вообще честно говоря прогресса в играх я особого не вижу, только требования растут, и графика лучше только в каких-то крутых ААА проектах, в той же индюшатине графика зачастую просто убогая и требования при этом высокие, особенно если на Юнити или УЕ4, что геймплей, что физика не сильно улучшились, взять тот же первый Кризис, и требования нормальные, я на своем компе вполне мог в него играть пока моя старючая видеокарта живая была, и графон очень неплох по современным меркам, тот же Пубг хуже выглядит, сами локации при этом большие довольно, и неплохая физика мира вроде разрушаемости окружения с ломаемыми пальмами и лачугами, не говоря о мебели, а если вспомнить Red Faction Guerilla то там вообще божественная разрушаемость, в то время как во многих играх мир вообще статичный, даже кружки и бутылки от выстрелов со стола не отскакивают.
__________________
Dr. Bowman: "So what was it?"
Sly: "Anachronox! Man, you guys are dumb."
Dr. Bowman: "But... You said it started with a 'U'."
Sly: "Yeah I know."
Временная зона GMT. Текущее время 11:28. | Показать все 7 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024