Потоковая загрузка текстур в Отголосках Атласа

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

Так сложилось, что в случае необходимости отрисовки нового ресурса, который ещё не успел загрузиться, движок Path of Exile теряет множество кадров (что вызывает сильную задержку). В качестве примера: вы в первый раз использовали умение, возникла небольшая задержка из-за загрузки соответствующих шейдеров и текстур с жёсткого диска. Мы несколько смягчили подобные ситуации, добавив различные системы предварительной загрузки, в которых игра загружала ресурсы заранее, как только получала сигналы о том, что вы скоро их встретите. Однако такое решение не было идеальным.

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

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

Технология "потоковой загрузки" была добавлена в Отголосках Атласа, она предназначена для обеспечения стабильной частоты кадров (никакого зависания во время загрузки ресурсов) и отрисовывает нечто похожее на полную версию ресурса, чтобы вы могли играть пока завершается загрузка. В сегодняшнем обновлении 3.13.1 мы ввели дальнейшие улучшения этой технологии с целью уменьшить нагрузку на ядра процессора на более слабых системах.

Хотя мы считаем приемлемым кратковременное размытие текстур во время игры при первом их появлении (и это гораздо лучше чем простаивание клиента, отрисовка черного ресурса или вообще его отсутствие), ситуации, когда вы входите в область и она долгое время выглядит ужасно, нас не устраивают. Мы пытаемся переработать технологию таким образом, чтобы первоначальная загрузка ресурса проходила на первом загрузочном экране в область, как и должно быть. В идеале это будет означать, что эта новая система не имеет недостатков - она обеспечивает стабильную частоту кадров и отсутствие длительной загрузки текстур для некоторых пользователей. Мы пока не можем дать вам точных сроков, но надеемся, что улучшение не займет больше недели или двух. Уверяем вас - мы продолжим работать над этой технологией, пока не доведем её до ума.

В дополнение ко всему вышенаписанному, важно понимать, что потоковая загрузка текстур - это основа текущего проекта по улучшению использования памяти, который поможет хорошей работе Path of Exile 2 со всеми её высокодетализированными ресурсами.

Мы видели различные сообщения об ухудшении производительности, которые игроки связывают с работой потоковой загрузки текстур, но мы полагаем, что это разные вещи. Указанные проблемы с производительностью действительно есть, мы рассматриваем каждую из них по отдельности. Их почему-то приписывают потоковой загрузке текстур, хотя это отдельные проблемы движка, которые нам нужно определить и исправить.
Сообщение 
Grinding Gear Games

Пожаловаться на запись форума

Пожаловаться на учетную запись:

Тип жалобы

Дополнительная информация