#1 Plem 13.11.2019, 16:42
Список игр, которые вскоре легко будут занимать более 100 Гб, безостановочно растет.


Помните, всего лишь месяц назад я писал, что технология HDD умерла для меня? Некоторые из последних игр очень стараются заставить меня пересмотреть эту точку зрения. Как только я подумал, что 1 Тб памяти будет более чем достаточно, а про 2 Тб даже говорить не приходилось, сразу же появилось (или стало известно о скором выходе) несколько игр, размер которых превысит 100 Гб. Конечно же, мне не нужно устанавливать на ПК все имеющиеся у меня игры, но мне нравится держать некоторую коллекцию для разнообразных тестов и всякого такого. Но я впал в изумление, когда увидел Red Dead Redemption 2, готовую поглотить 150 Гб, и Call of Duty: Modern Warfare, на которую в конечном итоге, судя по тому, что известно, может понадобиться 175 Гб.

Что за полнейший бред творится с размером игр?! Индустрия внезапно перепрыгнула с 50 Гб, считающихся огромными, до почти трехкратного превышения! Я помню, когда целые игровые миры могли содержаться всего лишь на одной дискете - ну, может, на коллекции дискет. Не важно. Дело в том, что, если бы мы все еще работали в дистрибуции с физическими носителями, мы смотрели бы на игры, которые требовали бы по 20 DVD, 250 CD или, если хотите, 121 500 3,5-дюймовых дискет). Разумеется, речь идет про версию с «высокой плотностью» размером в 1,44 Мб, а не о более ранней в 720 Кб.

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

Позвольте мне начать с простого примера - размеры файлов для относительно скромной текстуры разрешением 2048x2048 пикселей (2K-текстуры, если так привычнее). Если вы хотите сохранить такую текстуру без какого-либо сжатия, это будет означать 32-битное значение для каждого пикселя: RGBA (красный, зеленый, синий и альфа-канал - это такое техническое название для степени прозрачности). Всего получается около 4,2 миллиона пикселей и, как мы упомянули выше, 4 байта на пиксель, что в итоге выдает нам хороший файл размером около 16 Мб. А теперь подумайте обо всех моделях и текстурах в некоторых наиболее крупных играх с открытым миром. Если бы на каждой поверхности использовалась несжатая 2K-текстура, даже при размере игры в 150 Гб осталось бы место лишь для 9600 уникальных текстур.

Ладно, это на самом деле не выглядит слишком печально, но помните, что речь шла о 2K-текстурах. А что, если игра хочет использовать 4K-текстуры разрешением 4096x4096? Это увеличит размер файла в четыре раза и, как следствие, сократит число уникальных текстур до одной четвертой: 2400 текстур для 150 Гб или всего 800 текстур в игре на 50 Гб. Этого даже близко не достаточно для современной игры со множеством различных локаций, так что дело обстоит иначе.

Сообщение от :
Сжатие изображений без потери качества представляет собой нечто вроде уплотнителя мусора (на самом деле, не очень)
Но позвольте мне вернуться к тому моменту, где я говорил о сжатии. Почему текстуры должны храниться без сжатия? Конечно, это может привести к несколько более высокому качеству изображения, но размеры файлов в итоге окажутся огромными (относительно). Любой, кто знаком с цифровыми изображениями, вероятно, думает, что файлы форматов JPEG или PNG подошли бы лучше, и если мы говорим про размеры файлов - они будут правы. Это как положить мусор в уплотнитель: JPEG высокого качества (но с потерей данных, то есть в нем все равно будут артефакты сжатия) может сократить размер файла примерно до 2 Мб или сильнее (соответственно, с более низким качеством изображения) - до 1 Мб или даже до 0,5 Мб. Если попробовать PNG, то его сжатие без потерь обычно может уменьшить размер файла вдвое.

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

Поприветствуем алгоритм DirectX Texture Compression, также известный как DXTC (или его ранняя версия - S3TC, названная в честь ныне уже несуществующей компании S3 Graphics, которая создала его еще в конце 90-х). Официально S3TC стал поддерживаться в DirectX с версии 6.0, выпущенной в 1998 году. Позже его переименовали в DXTC, развив его до пяти различных режимов работы. Я не буду углубляться в детали низкого уровня, но если вкратце, DXTC - это алгоритм фиксированного сжатия изображений. Это означает, что в отличие от JPEG и PNG, здесь легко с точностью определить, насколько большими будут конечные файлы, а также проще создать аппаратное обеспечение для ускорения обработки изображений. По сути, все современные видеокарты, начиная с 2000 года, имеют аппаратную поддержку S3TC/DXTC.

Для игр, использующих DXTC, наиболее распространенными режимами работы являются степени сжатия 6:1 или 4:1. Это означает, что игра может хранить в четыре-шесть раз больше изображений в том же объеме. Unreal Engine и Unity Engine тоже поддерживают DXTC, наряду с другими форматами файлов, и, хотя я уверен, что есть исключения, мне кажется, что большинство игр в настоящее время используют для своих текстур именно DXTC. И, естественно, не все текстуры, используемые в игре, должны иметь одинаковое разрешение, поэтому маленькие объекты, которые могут занимать всего несколько сотен пикселей экранного пространства, не будут храниться в виде массивной 2К- или 4К-текстуры.

Сообщение от :
Демонстрация того, почему в играх используют MIP-текстурирование
Есть еще одна вещь: MIP-текстурирование. «MIP» происходит от латинской фразы «multum in parvo», означающей «много вещей в маленьком пространстве» (да, я тоже не знал об этом, пока не написал эту статью - спасибо, Википедия!). MIP-текстурирование существует с начала 80-х годов и широко используется в графических приложениях. Краткий итог: не каждую текстуру нужно постоянно хранить в полном разрешении. Предварительно рассчитав текстуры с более низким разрешением, можно оптимизировать требования к памяти и пропускной способности.

В конечном итоге каждая DXTC-текстура сохраняет мипмапы одной и той же текстуры интервалами в половину разрешения, практически до нуля – до размера в 1x1 пиксель. Если вы работаете с 2K-текстурой, вам нужно предварительно рассчитать 11 дополнительных файлов: 1024x1024, 512x512, 256x256, 128x128, 64x64, 32x32, 16x16, 8x8, 4x4, 2x2 и 1x1. Unreal Engine даже предоставляет эти полезные сведения в своей документации с указанием окончательных размеров файлов.

Теперь мы можем, по крайней мере, получить разумное представление о том, сколько места потребуется игре, основываясь на количестве используемых текстур и их размере. Расчет начинается с количества уникальных текстур, и для простоты я собираюсь игнорировать тот факт, что не все текстуры имеют одинаковый размер. Я думаю, можно сказать, что для любой достаточно сложной игры со множеством локаций счет будет идти на тысячи текстур. Давайте просто попробуем 10000 в качестве удобного круглого числа.

Если исходить из размеров файлов, указанных Unreal Engine, то для 1К-текстур (стандартные текстуры «высокого качества») игре потребуется 13,3 Гб. Увеличьте разрешение хотя бы до 2K, и это приведет к скачку до 53,3 Гб. А если вам нужны новейшие и самые лучшие 4К-текстуры, вам придется подготовить 223,7 Гб. Упс! И это мы говорим только про текстуры. В играх также присутствует много аудиофайлов, особенно если учесть их полную озвучку (например, опять же, Call of Duty и Red Dead Redemption 2). Добавьте к рассмотрению файлы геометрии и разные видео, и в итоге любая современная игра, которая использует текстуры в разрешении 4K, окажется довольно массивной.

Сообщение от :
Сколько разных текстур в этом кадре?
Очевидно, что нет однозначного подхода относительно того, как игры хранят свои текстуры, не говоря уже об аудио и видео файлах. Тем не менее, в целом, большая часть проблемы разрастания размера последних игр, похоже, произрастает именно из текстурирования. Преимущество состоит в том, что мы больше не получаем в играх повторяющиеся текстуры, и все выглядит намного более реалистичным. Оглядитесь назад в прошлое на такие игры, как оригинальный Half-Life или Deus Ex, - не заметить улучшение качества изображения невозможно. Я с нетерпением жду возможности посмотреть на закат в Red Dead Redemption 2, любуясь графикой - и будьте вы прокляты, 150 Гб!

Но текстуры с более высоким разрешением, несомненно, подвержены уменьшению заметного прибавления в качестве, особенно при более низких разрешениях. Переключитесь с ультры на текстуры с высоким качеством (с 4K до 2K или с 2K до 1K), и изменения часто даже трудно будет заметить, особенно на 1080p-мониторе. Это потому, что высококачественные текстуры обычно используются только на небольшой части экрана. В конце концов, по понятиям, стена с 2K-текстурой должна выглядеть лучше, чем та же стена с 1K-текстурой, но отойдите подальше, и игровой движок, вероятно, заменит 2K-текстуру аналогом с более низким на одну ступень разрешением, и вы этого даже не заметите.

Это хорошая новость, потому что я, безусловно, совсем не жду игр, пытающихся использовать текстуры с разрешением 8K, которые еще в четыре раза увеличат их размер. Возможно, когда-нибудь в будущем мы все будем использовать 8K-дисплеи, и это встанет в разряд нормального, но, надеюсь, к тому времени у нас также будут доступные SSD-накопители емкостью в десятки терабайт. Или так, или кто-нибудь умный изобретет более эффективный алгоритм сжатия текстур. Я могу на это только надеяться.

Источник: PC Gamer
Потому, что не хотят оптимизировать, и хотят много бесполезного графна.

Ну кому вообще нужны эти хроматические аберрации, зернистость, свечение, размытие, глубина резкости и SSAO.

Со всеми этими закидонами игра становится корейским мыльным мылом. Да ещё новой новомодное нововведение, когда качество графики влияет непонятно на что, но не на графику. Нужно ещё отдельно крутить ползунок детализация графики под 200%. Что часто ничего не меняет, но начинает подтормаживать.

Делать чёткую картинку, без закидонов, и сразу место уменьшается.
#3 Hardonliner 13.11.2019, 17:04
надо играть в лончер - , делаешь бенчмарк на нем тестируешь свой комп, высталяешь требуемые настройки и под эти настройки скачиваются файлы. А малоимущие граждане могут "питаться картошкой" - тогда и игра будет намного меньше весить. А по теме - а почему это в кинотеатре в ВИП ложе диваны такие большие? А почему в ресторане меню такое длинное? А почему в столовой такие длинные витрины?
#4 Aiz 13.11.2019, 17:13
Сообщение от Crimson Ink:
Потому, что не хотят оптимизировать, и хотят много бесполезного графна.

Ну кому вообще нужны эти хроматические аберрации, зернистость, свечение, размытие, глубина резкости и SSAO.

Со всеми этими закидонами игра становится корейским мыльным мылом. Да ещё новой новомодное нововведение, когда качество графики влияет
Тебе, по-моему, прямым текстом объяснили, что размер зависит от текстур высокого разрешения, при чем здесь постэффекты? Аберрация, размытие, динамическое освещение и вот это всё не тратит ни грамма твоего дискового пространства.
Я тебе открою такую штуку - https://reshade.me/ , позволяет натянуть любые такие эффекты практически на любую игру и весит примерно пару мегабайт.
Сообщение от Aiz:
что размер зависит от текстур высокого разрешения, при чем здесь постэффекты?
Так они же нагружают видеокарту и жрут оперативку. Что сказывается на быстродействии и работе. И как я заметил, что игры, в которых этого нет, весят меньше.
#6 DuDos_renamed_1067848_30112024 13.11.2019, 18:01
Сообщение от Crimson Ink:
Так они же нагружают видеокарту и жрут оперативку
Ты можешь отключить эти эффекты, держу в курсе.
Сообщение от Hardonliner:
надо играть в лончер - , делаешь бенчмарк на нем тестируешь свой комп, высталяешь требуемые настройки и под эти настройки скачиваются файлы. А малоимущие граждане могут "питаться картошкой" - тогда и игра будет намного меньше весить. А по теме - а почему это в кинотеатре в ВИП ложе диваны такие большие? А почему в ресторане меню такое длинное? А почему в столовой такие длинные витрины?
Какая связь между вип диванами и массовыми видеоиграми?
#8 Plem 13.11.2019, 19:34
Сообщение от Hardonliner:
делаешь бенчмарк на нем тестируешь свой комп, высталяешь требуемые настройки и под эти настройки скачиваются файлы.
А вот это звучит интересно)
#9 Корочун 13.11.2019, 20:34
Как-то встречал мимоходом вроде есть такая фишка (не помню названия) что вместо самой текстуры используется её описание, и гпу просто создает текстуру с нуля. При этом описание может занимать в десятки тысяч раз меньше места, но требует огромных вычислительных ресурсов(которых тогда не было). Спецы могут подсказать название технологии.

Кстати что-то похожее происходит сейчас с ртх, вместо готовых карт освещения\отражений они генерируются с 0. Ну и сразу заметно что нынешние гпу такие расчеты не тянут (пока)
#10 PelmenT 13.11.2019, 22:25
Сообщение от Crimson Ink:
SSAO.
Про одну твою глупость сказали. Я скажу про вторую - с каких пор затенение стало лишним эффектом? Ты в курсе, что оно дает и как качественно меняется картинка? Причем это именно реалистичная пост-обработка, а не бутафорская, как то, что ты перечислил.
#11 Plem 13.11.2019, 23:50
Сообщение от Корочун:
Как-то встречал мимоходом вроде есть такая фишка (не помню названия) что вместо самой текстуры используется её описание, и гпу просто создает текстуру с нуля. При этом описание может занимать в десятки тысяч раз меньше места, но требует огромных вычислительных ресурсов(которых тогда не было). Спецы могут подсказать название технологии.

Кстати что-то похожее происходит сейчас с ртх, вместо готовых карт освещения\отражений они генерируются с 0. Ну и сразу заметно что нынешние гпу такие расчеты не тянут (пока)
Немного не то, но вспомнилось.
В quake впервые использовали хитрую технологию, как передавать информацию о том, как летит снаряд. Причем, вопрос стоял еще и сточки зрения синхронизации между игроками по сети.
В итоге сделали так: когда чел стреляет, в сеть выдается информация о том из какой точки и в каком направлении ушел снаряд. Принимающая сторона противника получая эту информацию сама себе в своем клиенте строила все необходимое, и полет снаряда и обсчет его попаданий.
#12 ScAll 14.11.2019, 00:01
Я офигел, что новый код весит 130гб. Купил второй ссд на 500гб, поставил несколько игрух и ку-ку 2 ссд по 500гб забились. Надо походу на 5тб брать, чтобы на год хватило :)
#13 Xenobius 14.11.2019, 07:25
Во-первых, потому что уже давно в базовый дистрибутив пихают текстуры во всех возможных разрешениях, влоть до 4к (если игра его поддерживает). Бред лютый на самом деле, потому что если я (скажем) буду ставить игру на ноут - мне эти 4к даром не впились, а место вынь да положь.

Во-вторых (хоть и в меньшей мере) из-за озвучки на разных языках. Если предположить lossless а то и вовсе несжатые форматы - места можно откушать - ого-го.

Ну и в-третьих, потому что на оптимизацию давно и со вкусом забили болт. Если очень захотеть - можно сильно ужать размер. Очень сильно. Только лень, "и так сойдет" же.


З.Ы.: Помнится, 16 лет назад действительно рукастые кодеры (а не та шелупонь, пишущая индусский код которая нынче в каждой второй конторке работает) смачно утерли нос криворучкам при помощи кригера (кто не знаком - качать тут). Не факт, правда, что пойдет на вин10 (у меня и на вин7-то приходится режим совместимости с WinXP SP3 включать), если нет - чуть ниже под спойлером видео. И нет, этот файлик не качает игру из интернета, она вся в нем. Не верите - можете провод перед запуском выдернуть из свича. Страшненькая, кривенькая, но при таком размере (96 КИЛОбайт, полтора десятка копий на один флоппи-диск записать можно) это все равно было (и остается) почти чудом. Блин, один СКРИНШОТ этой игры весят больше самой игры...


#14 Udaffer 14.11.2019, 08:07
Автор ещё не сказал о повторных текстурах для ускорения доступа дисков к повторяющим текстурам. Например игра содержит 15 карт и на этих картах есть повторные текстуры и их пакуют по картам дублировано и за этого и растёт размер игр очень сильно.
#15 НечтоХрустящее 14.11.2019, 08:19
Уточнение, не 32 бита, а 8 или 16 в зависимости от вида карты текстурного сета
Метки