NVIDIA Frame Generation
Frame Generation (Генерация кадров, Фреймген, Мыловарня Хуанга, Наебалово века, DLSS 3: The Quickening) — очередная вундервафля от зелёного монополиста, призванная впарить хомячкам очередную порцию неработающего говна под видом революционной технологии. Суть проста: вместо того, чтобы честно рендерить каждый кадр, видяха на лету дорисовывает промежуточные, якобы повышая FPS. На деле же получается лютый пиздец, от которого у любого уважающего себя олдфага случается кровавый понос.
Как оно (не) работает[править]
Если по-простому, то видеокарта, вместо того чтобы как в старые добрые времена рендерить, например, 60 кадров в секунду, с помощью своих тензорных ядер (которые в приличных играх заняты трассировкой писек на жопах эльфиек, а в этих ваших киберпанках только подкручивают мыло) додумывает между ними ещё, допустим, 60. В итоге получается 120 FPS, но не настоящих, а поддельных, как сиськи у Инстасамки.
Но тут-то и начинается самое интересное. Чтобы эта поебень хоть как-то работала, GPU надо предугадать, что будет в следующем кадре. А для этого используется оптический поток — хитровыебанный алгоритм, который анализирует предыдущие кадры и пытается понять, куда движутся объекты. Вот только эта сука нихуя не понимает. Вместо плавного движения получается телепортация, шлейфы и артефакты, как будто смотришь стрим с говноинтернетом в деревне у бабки.
А ещё эта хуйня увеличивает инпут-лаг, потому что пока видяха там свои кадры дорисовывает, ты уже успеваешь три раза проебать катку. В итоге получается, что вместо того, чтобы помогать игрокам, этот ваш фреймген только мешает, превращая игру в слайд-шоу с задержкой ввода, как у деда на калькуляторе.
Настоящая цель[править]
На самом деле, вся эта возня с генерацией кадров нужна только для того, чтобы:
- Наебать хомячков: показать красивые цифры в бенчмарках и заставить их купить новую видеокарту, которая на самом деле нихуя не мощнее старой.
- Скрыть убогость оптимизации: когда игра тормозит, как ебаный стыд, проще добавить волшебную кнопку «сделать заебись», чем тратить время и деньги на нормальный рендеринг.
- Продать тензорные ядра: а то они простаивают без дела, когда не заняты подкручиванием мыла и рейтресингом.
Технические детали для задротов[править]
Если копнуть глубже, то вся эта бодяга с фреймгеном сводится к интерполяции между кадрами. Причем интерполяция эта не простая, а с использованием motion vectors (векторов движения), которые, как уже говорилось, рассчитываются с помощью optical flow. Проблема в том, что алгоритмы оптического потока, даже самые современные (например, RAFT), работают через жопу в динамичных сценах, особенно при резких поворотах камеры или большом количестве мелких объектов.
Кроме того, для работы фреймгена требуется доступ к буферу глубины (depth buffer) и векторам движения из игрового движка, что накладывает определенные ограничения на разработчиков. А ещё эта хрень конфликтует с TAA (Temporal Anti-Aliasing) и прочими техниками сглаживания, основанными на накоплении данных из предыдущих кадров. Короче, геморроя больше, чем профита.