Skip to content

feat: upscaler spatial expérimental et comparaison de reconstruction - #24

Merged
ZyFou merged 1 commit into
developfrom
feat/spatial-upscaler-test
Oct 1, 2026
Merged

ZyFou merged 1 commit into
developfrom
feat/spatial-upscaler-test

Conversation

@ZyFou

@ZyFou ZyFou commented Sep 17, 2026

Copy link
Copy Markdown
Owner

Objectif

Tester une résolution 3D interne réduite avec reconstruction spatiale et netteté adaptative, sans modifier la cadence de rendu.

PR indépendante de #23 : même base develop b40f5c7, aucune dépendance au mode économie/FPS dynamiques. Les deux expériences peuvent être testées séparément avant fusion.

Fonctionnalités

Performance → Spatial Upscaler (Experimental) :

  • Off par défaut : utilise le choix Resolution Reconstruction existant.
  • Bilinear : référence de comparaison peu coûteuse.
  • Spatial + Adaptive Sharpness : filtre original à cinq échantillons bilinéaires, atténuation selon le contraste local et limitation à la plage de couleurs du voisinage ; netteté 0–1, valeur initiale 0,35.
  • Raccourci Scene Render Scale ; commencer à 0,75×. L’interface reste en résolution native. 0,75² représente 56,25 % des pixels de la scène principale, pas une mesure de consommation.
  • Aucun historique temporel, vecteur de mouvement, buffer ou passe supplémentaire. Ce n’est pas FSR/DLSS/une IA ni de la génération d’images.
  • Le filtre est désactivé à résolution native/sur-échantillonnée. Les modes pixelisés prennent priorité. Les nouveaux réglages sont validés, présents dans les anciennes/nouvelles configurations et sauvegardés lors des changements dans l’interface, même en worker.

Corrections associées

Une fonction commune pilote les defines GLSL, les uniforms et les diagnostics. Elle remplace l’utilisation de plan.reconstructionMode, propriété inexistante qui laissait Clean Denoise compilé hors du shader. Pixelated Denoise compile également la bonne variante. Le mode spatial ne bascule pas le dithering sur la grille pixel-art.

Important pour comparer : Off/Clean utilise le filtre corrigé ; choisir Bilinear pour retrouver une référence proche de l’ancien chemin linéaire effectif.

Validation

19 tests Node ciblés exécutés et réussis localement : sélection, dimensions, priorités, correspondance shader/uniform, réutilisation des cibles, zéro netteté, configurations anciennes/réinitialisées, sauvegarde et présentation en cache. Les tests d’orchestration exécutent le vrai code de la passe avec des doubles Three.js, pas un GPU.

Workflow PR ajouté : tests ciblés, npm ci, npm test, npm run build, sans déploiement. Résultat de la suite complète/build à vérifier en CI avant fusion.

Limite explicite : le navigateur de l’environnement local n’a pas fourni de contexte WebGL ; ni la compilation des shaders sur GPU ni la qualité visuelle ni les gains thermiques sur Mac ne sont donc validés ici. Une page reproductible /tests/spatial-upscaler.webgl.html, à ouvrir avec Vite, teste les variantes des vrais shaders et des images synthétiques sur un navigateur disposant de WebGL.

Test recommandé

Voir docs/SPATIAL_UPSCALER.md. À scène/caméra identiques et Auto Performance désactivé, comparer native 1× puis Bilinear/Spatial/Clean à 0,75×, netteté 0,35. Vérifier végétation, côtes, eau, nuages, CRT/dithering, modes Tile/Infinite/Planet, worker, resize, reset et capture.

La reconstruction ne recrée pas les détails absents de l’image basse résolution. Aucun gain chiffré de FPS, de puissance ou de température n’est promis. Pas de fusion automatique.

ZyFou commented Sep 17, 2026

Copy link
Copy Markdown
Owner Author

Validation finale : le workflow Renderer experiments #2 est terminé avec succès pour f4ee42b. Les tests ciblés, npm test et npm run build sont tous verts.

Cela ne valide pas le rendu GPU : le contexte WebGL n’était pas disponible dans l’environnement local. La compilation sur le navigateur/GPU cible et la comparaison visuelle doivent encore être vérifiées avec /tests/spatial-upscaler.webgl.html puis avec le terrain réel. Point de départ : Auto Performance désactivé, Render Scale 0,75×, netteté 0,35, comparaison Bilinear/Spatial à caméra identique.

Cette PR reste indépendante de #23 ; aucune fusion n’a été effectuée.

@ZyFou
ZyFou merged commit 4ad8268 into develop Oct 1, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant