Constat
Le log de session 128 a confirmé que AnimBrightnessSystem tourne (tick
avance, LbDyn oscille) mais l’oscillation d’intensity ne fait que 9% de gris
(0.867 → 0.956), trop subtile pour être visible si on ne sait pas où regarder.
Deux causes possibles à distinguer :
1. Le pipeline GPU fonctionne mais l’amplitude est juste trop faible.
2. Le buffer Color n’est pas re-uploadé au GPU (ou le matériau l’ignore).
Modifications
world/AnimBrightnessSystem.java
-
Ajout d’un mode debug
DEBUG_AMPLIFY(static, true par défaut pour
ce test) qui remplace l’intensity calculée par un strobe rouge↔vert
très visible (oscillation 0..1 sur 20 ticks = 2 sec). Si on voit ce
strobe en jeu, le pipeline GPU est OK et le seul travail restant est
la calibration d’amplitude. Si on ne voit rien, le bug est upstream
(matériau VertexColor=false, buffer non uploadé, etc.). -
scanReclog maintenant pour chaque géométrie animée :
– le nom du mesh
– le nombre d’entries
– le materialDef + valeur de VertexColor
– le centre du bounding box monde (= où le joueur doit aller pour voir)
– la taille du buffer Color
Permet de confirmer en un coup d’oeil que les conditions nécessaires
au rendu vertex-color sont réunies.
Comment utiliser
- Lancer le jeu sur LEVEL_A
- Au début du log, chercher les lignes :
anim mesh 'walls_4': 12 entries, mat=Common/MatDefs/Misc/Unshaded.j3md[VertexColor=true], world center=(...)
Leworld centerindique où aller pour voir l’animation. - Naviguer vers ces coordonnées. Tu devrais voir des sommets clignoter
violemment rouge↔vert (toutes les 2 secondes). - Si oui : pipeline OK, on passe à la calibration d’amplitude.
Si non : on a un problème upstream qu’on diagnostiquera avec le
contenu du log.
Après validation
Mettre DEBUG_AMPLIFY = false (constante en haut de la classe) pour
revenir au comportement nominal ASM-fidèle.