Sampler Feedback Streaming - что она дает и почему это так важно

Sampler Feedback Streaming — что она дает и почему это так важно

Sampler Feedback Streaming — что она дает и почему это так важно

Ниже информация собранная из цепочки твитов Гэвина Стивенса, совладельца и ведущего дизайнера инди-студии разработчика Team Blur Games.

Нам часто придется слышать про SFS (Sampler Feedback Streaming), поэтому полезно понять почему эта фишка настолько важна и почему она обеспечивает такой большой вклад в производительность Xbox Series X. Так что давайте посмотрим.

Первое, текстуры. Игры сделаны из текстур, и каждая поверхность в игре имеет их несколько. Но то что выглядит простой поверхностью на взгляд, на самом деле состоит из множества элементов. (Я здесь немного опущу детали, если кому интересно — могут почитать по ссылку в источнике).

Текстуры могут различаться по размеру в зависимости от разрешения и используемого метода сжатия. Например, стандартный комплект текстур разрешением 512х512 может иметь размер в 36 Мб. Но в новом поколении более популярными будут текстуры большего разрешения, 4096×4096 и 8192×8192. Стандартный комплект текстур формата 4096 весит 144 Мб, а в формате 8192 уже 576 Мб. Это если считать несжатый размер, для экономии места текстуры обычно сжимаются с применением различных алгоритмов. Но мы для простоты сейчас рассмотрим вариант без учета сжатия.

Каждая текстура включает в себя элементы называемые «mip map», я не знаю как это правильно перевести на русский, буду называть просто мип. Это версии исходной текстуры с уменьшенным разрешением. Они нужны потому что использование полноразмерных текстур для объекта, который находится на расстоянии, приводит к графическим артефактам в виде шума. Это хорошо видно на изображении ниже:

Sampler Feedback Streaming - что она дает и почему это так важно

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

Современные игры умеют это делать автоматически. Закинь ей текстуру 512х512 и она сама использует в картинке мип подходящего разрешения. Но что значит подходящего? Мип делается из исходной текстуры уменьшением ее разрешения в два раза. То есть если исходная текстура была 512 на 512 пикселей, но мипы будут по 256, 64, 32, 16 и т.д. Таким образом, вы видите, что чем больше исходное разрешение текстуры, тем больше мипов ей потребуется. И речь идет о КАЖДОЙ текстуре в игре.

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

Неважно, стоит ли персонаж у тебя перед глазами или ты видишь его на другом конце карты, это не имеет значения. Если игровой движок считает, что этот объект нужен, то он в памяти. Напоминаю, это не только одна текстура, это весь комплект на все случаи возможного использования. Просто представьте себе весь объем информации, который игра держит в памяти для персонажа на другом конца карты, который на вашем 65 дюймовом ТВ занимает 1 см. А между тем если на него посмотреть близко, то он выглядит примерно вот так:

Sampler Feedback Streaming - что она дает и почему это так важно

Традиционные системы, включая PS5, работают именно так. Но с использованием SFS все меняется кардинально. SFS загружает только тот мип, который нужен в конкретной ситуации и игнорирует все остальные ненужные элементы текстуры. Почему это важно? Потому что в этом случае, если взять пример с 8192 текстурой, объем занимаемой текстурой памяти составит не 576 Мб, а 576 Кб.

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

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

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

Безусловно, SSD на PS5 быстрее чем на Xbox Series X. Но есть разные способы добиться нужной производительности и здесь SFS является революционным способом обеспечить системе обмена данными Xbox Series X производительность на том же уровне, что и на PS5.

Добавьте сюда фиксированные частоты с парой дополнительных терафлопс и прочие трюки с рендерингом (очень интересно какую альтернативу DLSS 2.0 предложит MS) и становится очевидно что Series X это чертовские классная машина.

Собственно, обе консоли потрясающие. Но в то время как Сони сложила почти все яйца в корзину с SSD, MS позаботилась обо всех элементах системы. SSD на XSX это классное устройство с впечатляющим набором оптимизаций и вместе с SFS он играет в уже совсем в другой лиге.

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

Game Developer "Gavin Stevens" explains game changing technology (Sampler Feedback Streaming) for Xbox Series X from XboxSeriesX

Оставьте комментарий