LifePlay-Revival/Docs/Migration/etat/VQ/VQ1/VQ1-SPEC.md
edujiro5972 0f1a61c9fe VQ : qualite video (sous-systeme LPVideoQuality, onglet Reglages, DefaultScalability), lots VQ0 a VQ5 et correctifs (CHG-237 a 242)
LifePlay.uproject : SupportedTargetPlatforms Win64 sur LPAnimCore, origine non revendiquee, range ici.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 01:40:47 +02:00

9.7 KiB
Raw Blame History

VQ1-SPEC — Spécification DefaultScalability.ini (Low → Epic)

Fiche : VQ1-T1
Rôle : A-ARCH
Modèle attendu : claude-sonnet-5-5-high (M2)
Date : 07 octobre 2026
Workspace : d:\Game\LifePlay-master 5.5
Statut : Spécification — prête pour implémentation (VQ1-T2)
Dépend de : VQ0-CART.md (cartographie des réglages Video), lot L7c (Config/DefaultEngine.ini)


1. Objectif

Définir, pour le projet, un fichier Config/DefaultScalability.ini qui précise explicitement les cvars appliqués par les niveaux de qualité 0 (Low) → 3 (Epic) pour quatre groupes seulement :

Groupe cvar de niveau Section INI (par niveau)
Ombres sg.ShadowQuality [ShadowQuality@0] … [ShadowQuality@3]
Textures sg.TextureQuality [TextureQuality@0] … [TextureQuality@3]
Effets sg.EffectsQuality [EffectsQuality@0] … [EffectsQuality@3]
Anti-aliasing (qualité) sg.AntiAliasingQuality [AntiAliasingQuality@0] … [AntiAliasingQuality@3]

Ces quatre groupes préparent le futur bloc LPVideo* (VQ0-CART §7) et remplacent la dépendance implicite aux valeurs par défaut du moteur par des valeurs lisibles, versionnées et revues.

2. Périmètre et interdits

2.1 Dans le périmètre

  • Niveaux 0, 1, 2, 3 des 4 groupes ci-dessus.
  • Cvars de qualité « classiques » UE5 (résolution d'ombres, cascades, pool de textures, anisotropie, qualité de réfraction, qualité du post-AA).

2.2 Interdits (hors périmètre — ne doit jamais apparaître dans DefaultScalability.ini)

Interdit Raison
Illumination globale dynamique (r.DynamicGlobalIlluminationMethod, r.Lumen.*, groupe GlobalIlluminationQuality) Verrouillée à 0 par le lot L7c (rendu 4.27 conservé).
Ombres virtuelles / VSM (r.Shadow.Virtual.*, y compris r.Shadow.Virtual.Enable) Verrouillées à 0 par L7c. Aucune cvar r.Shadow.Virtual.* ne doit être ajoutée, même « inoffensive ».
Méthode d'anti-aliasing (r.AntiAliasingMethod) Verrouillée à 2 (TAA) par le lot L6a / L7c : TSR fait scintiller les maillages à morphs. Le groupe AntiAliasingQuality ne règle que la qualité, pas la méthode.
Méthode de reflets (r.ReflectionMethod, r.SSR.*, groupe ReflectionQuality) Verrouillée à 2 (SSR) par L7c.
Groupes ViewDistanceQuality, PostProcessQuality, ShadingQuality, FoliageQuality, LandscapeQuality, ResolutionQuality, GlobalIlluminationQuality, ReflectionQuality, SkeletalMeshQuality, HeightFieldShadowQuality… Non demandés ; les valeurs moteur (BaseScalability.ini) restent inchangées.
Niveau Cinematic (@Cine, niveau 4) Non exposé au joueur ; valeurs moteur conservées.
Toute modification de Config/DefaultEngine.ini Les contraintes L7c/L6a y restent la source de vérité.

Garde-fou L7c (rappel) : r.DynamicGlobalIlluminationMethod=0, r.ReflectionMethod=2, r.Shadow.Virtual.Enable=0, r.AntiAliasingMethod=2 dans [/Script/Engine.RendererSettings] de DefaultEngine.ini. Ces valeurs sont au niveau de priorité ProjectSetting, supérieur à Scalability : elles ne peuvent pas être écrasées par un niveau de scalabilité, mais la règle ci-dessus évite néanmoins toute tentative.

3. Correspondance des niveaux

Niveau Nom Usage
0 Low Machines faibles / GPU intégrés
1 Medium Machines modestes
2 High Cible standard
3 Epic Qualité maximale proposée ; reste conservatrice (pas de valeur au-delà du palier Epic moteur)

Principe « conservateur » : chaque valeur est choisie au plus égale à l'équivalent Epic du moteur UE 5.5 et sans activer de fonctionnalité nouvelle par rapport au rendu 4.27 validé. Aucune cvar susceptible de changer le look (volumetric fog, distance-field shadows, capsule shadows, SSS profile, bloom…) n'est incluse : elles restent aux valeurs moteur.

4. Tableau niveau → cvars

4.1 ShadowQuality (sg.ShadowQuality)

cvar 0 Low 1 Medium 2 High 3 Epic Commentaire
r.Shadow.CSM.MaxCascades 1 2 3 4 Cascades du soleil
r.Shadow.MaxResolution 512 1024 2048 2048 Résolution max ombre dynamique (plafonnée à 2048)
r.Shadow.MaxCSMResolution 512 1024 2048 2048 Résolution max par cascade
r.Shadow.RadiusThreshold 0.06 0.05 0.04 0.03 Rayon écran min. pour projeter une ombre
r.Shadow.DistanceScale 0.6 0.7 0.85 1.0 Distance de rendu des ombres
r.Shadow.CSM.TransitionScale 0.0 0.25 0.6 1.0 Fondu entre cascades
r.Shadow.PreShadowResolutionFactor 0.5 0.5 0.75 1.0 Résolution des pré-ombres

Non inclus volontairement : r.Shadow.Virtual.* (interdit), r.DistanceFieldShadowing, r.CapsuleShadows, r.VolumetricFog*, r.LightMaxDrawDistanceScale, r.LightFunctionQuality.
Cohérence : r.MinScreenRadiusForCSMDepth=0.010000 reste fixé dans DefaultEngine.ini (non touché).

4.2 TextureQuality (sg.TextureQuality)

cvar 0 Low 1 Medium 2 High 3 Epic Commentaire
r.Streaming.MipBias 2.5 1 0 0 Mips abaissés (0 = pleine résolution)
r.MaxAnisotropy 0 2 4 8 Filtrage anisotrope
r.Streaming.PoolSize 200 400 700 1000 Budget pool de streaming (Mo)
r.Streaming.MaxEffectiveScreenSize 0 0 0 0 0 = comportement moteur

r.TextureStreaming=True reste imposé par DefaultEngine.ini.

4.3 EffectsQuality (sg.EffectsQuality)

cvar 0 Low 1 Medium 2 High 3 Epic Commentaire
r.TranslucencyLightingVolumeDim 24 32 48 64 Volume d'éclairage des translucides
r.RefractionQuality 0 2 2 3 Qualité de réfraction
r.SSS.Scale 0.25 0.5 0.75 1.0 Échelle subsurface scattering
r.SSS.SampleSet 0 1 2 2 Jeu d'échantillons SSS
r.DetailMode 0 1 2 2 Seuil des composants « detail mode »
fx.Niagara.QualityLevel 0 1 2 3 Niveau de qualité Niagara

Non inclus : r.SSR.Quality, r.Lumen.* (interdits), r.BloomQuality, r.SceneColorFormat, r.EmitterSpawnRateScale.

4.4 AntiAliasingQuality (sg.AntiAliasingQuality)

cvar 0 Low 1 Medium 2 High 3 Epic Commentaire
r.PostProcessAAQuality 0 2 4 4 Qualité du post-AA (échelle moteur 0–6)

Non inclus : r.AntiAliasingMethod (interdit, fixé à 2/TAA), r.TSR.* (TSR non utilisé), r.TemporalAA*.
r.PostProcessAAQuality=4 pour Epic = palier moteur ; la valeur 6 est réservée à Cinematic et n'est pas utilisée.

5. Note « Overall »

sg.OverallQuality (« Overall ») n'a pas de section propre dans DefaultScalability.ini : l'application d'un niveau Overall N consiste à appliquer le même niveau N aux quatre groupes (sg.ShadowQuality, sg.TextureQuality, sg.EffectsQuality, sg.AntiAliasingQuality = N). Les autres groupes de scalabilité restent à leur valeur courante.

Conséquence pour le futur sous-système LPVideo* : un sélecteur « Overall » doit écrire N sur ces 4 groupes uniquement (via Scalability::SetQualityLevels en préservant les autres champs de FQualityLevels), et ne pas déclencher d'effet de bord sur GI, reflets, VSM ou méthode d'AA.

6. Règles de fusion et de priorité

  1. Config/DefaultScalability.ini est lu après Engine/Config/BaseScalability.ini ; les sections portant le même nom ([ShadowQuality@2]…) sont fusionnées clé par clé : les clés non listées conservent la valeur moteur.
  2. Les cvars appliquées par scalabilité ont la priorité SetByScalability, inférieure à SetByProjectSetting (DefaultEngine.ini). Les verrous L7c ne peuvent donc pas être contournés.
  3. Les valeurs sg.* choisies par le joueur sont persistées dans GameUserSettings.ini (Saved/Config/Windows) ; elles choisissent le niveau, pas le contenu des sections.
  4. Aucun DeviceProfile n'est défini dans Config/ (pas de DefaultDeviceProfiles.ini) : pas de surcharge supplémentaire à prévoir.
  5. Le fichier ne contient que des sections @0–@3 des 4 groupes, rien d'autre.

7. Points d'attention (VQ0-CART §6)

  • Redondance BP : les curseurs BP ShadowQuality, PostProcessAAQuality (qui pilote r.PostProcessAAQuality directement), PostProcessQuality restent actifs. Un curseur BP AA Quality qui fixe directement r.PostProcessAAQuality aura priorité de dernière écriture sur le niveau sg.AntiAliasingQuality ; le futur LPVideo* devra les masquer/synchroniser (hors périmètre VQ1).
  • Aucun changement C++/Blueprint dans VQ1 : uniquement configuration.
  • Vérification des valeurs moteur : les valeurs de §4 sont fondées sur les paliers usuels de BaseScalability.ini UE 5.x ; elles doivent être confrontées au fichier de l'installation 5.5 lors de la validation (VQ1-VAL).

8. Critères d'acceptation (pour VQ1-T2 et validation)

  • Config/DefaultScalability.ini existe et ne contient que [ShadowQuality@0..3], [TextureQuality@0..3], [EffectsQuality@0..3], [AntiAliasingQuality@0..3].
  • Aucune occurrence de Virtual, Lumen, GlobalIllumination, AntiAliasingMethod, ReflectionMethod, SSR dans le fichier.
  • Config/DefaultEngine.ini inchangé (L7c intact).
  • En jeu, sg.ShadowQuality 0..3 (etc.) modifie r.Shadow.MaxResolution, r.Streaming.PoolSize, etc. conformément au §4 (Scalability console / stat/r.X en lecture).
  • Rendu à niveau 3 : GI dynamique, VSM et méthode d'AA inchangés (Lumen/VSM off, TAA).