DLSS / FSR 4 rework: per-object motion vectors from the game

オープン
#53 コメント 1 件 リアクション 0 件 担当者 1 名 GitHub で見る

@jerbanpls がすでに取り組んでいます。

2026年11月8日 から。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
15/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
cpp

調査の方向性

Start with runtime/src/gfx/extras/temporal.cpp, which currently builds camera-only motion vectors, then trace the G-buffer vertex uniforms to find where per-object transforms are stored. Check whether the game already exposes a velocity buffer and how the Streamline and FidelityFX integrations consume motion vectors, jitter, and masks. Done means moving objects no longer ghost under DLSS or FSR, related issues #44 and #45 are resolved or explained, and FSR 4 is selectable on supported hardware.

索引モデルが issue の本文から書いたものです。

説明

enhancement graphics help wanted planned

Summary

Rework the temporal upscaling path (DLSS / DLAA through Streamline, AMD FidelityFX) and add FSR 4 support. The biggest change is feeding the upscalers real per-object motion vectors pulled from the game, not ones rebuilt from the camera alone.

Current state

runtime/src/gfx/extras/temporal.cpp makes motion vectors in a compute pass using only the depth buffer and the current and previous view-projection. That covers camera motion only. Anything that moves on its own (Pokémon, the player, NPCs, animated or skinned meshes, particles) gets vectors that are wrong. That causes ghosting and smearing behind moving objects, and instability on some surfaces.

Related: #44 (ghosting), #45 (upscaler flicker / odd textures where tiles join).

Goals

  • Per-object motion vectors. Find a way to expose object motion from the game:
    • Find where the game keeps per-draw / per-object transforms (world matrices, skinning palettes) in the G-buffer vertex uniforms
    • Keep the previous frame's transforms per object and match them across frames (stable object identity)
    • Build a velocity pass that renders object motion on top of the camera-only vectors, or check whether the game has a velocity buffer of its own (e.g. for its TAA / motion blur) that we can use instead
    • Handle skinned / animated meshes, or at least mask them reliably
  • FSR 4 backend. Add FSR 4 next to the current FidelityFX path, with a fallback on GPUs that don't support it
  • DLSS rework. Review the Streamline integration with the new inputs (motion vectors, reactive / transparency masks, jitter, reset on camera cuts)
  • Reactive / transparency masks for UI, particles, water and other alpha-blended surfaces so they don't ghost
  • Recheck the jitter setup (temporal_jitter_block, sign conventions) against both SDKs

Done when

  • Moving characters and objects no longer ghost or smear under DLSS / FSR
  • #44 and #45 are fixed or confirmed to have another cause
  • FSR 4 can be picked in the settings on supported hardware
主要言語
C++
スター
224
フォーク
0
PR マージ指標
30日以内にマージされた PR はありません

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

featureJosh/Recompia のほかの issue

featureJosh/Recompia の issue をすべて見る

似ている issue

C++ の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。