# SHADER-131 — émissifs indépendants et réglages initiaux Demande : activer par défaut bloom, minerais émissifs et highlight ; garder les émissifs avec halo coupé ou intensité du bloom à zéro, sans bouton ajouté ; ajouter 64 et 128 pixels/bloc en options. Précision initiale 16, distances highlight 32 et ombres 128 conservées. Préférences personnalisées préservées. Branche `codex/emissive-beta131`, socle beta.130, Minecraft 26.3 / Java 25. Le futur effet demandé est une légère teinte diffusée depuis les blocs voisins, pas des reflets reconnaissables. Étude seulement pour ce ticket ; aucun SSR ou éclairage indirect expérimental activé. ## Comportement et validation Le curseur à zéro et l'interrupteur Bloom coupent uniquement le halo. Le réglage existant des minerais contrôle leurs inclusions nettes séparément. Sans halo, les cibles de diffusion GPU sont libérées ; l'émission garde seulement les ressources nécessaires. Tout désactiver libère l'ensemble. La grille commune propose 8, 16, 32, 64 et 128, sans augmenter le plafond 4096 de la carte d'ombres. Libellés FR/EN et essais clients natifs sur les inclusions, l'absence de halo, les transitions et les nouvelles précisions. Aucun changement de lumière serveur, de génération ou de sauvegardes. Le cœur émissif et le halo utilisent maintenant deux chemins indépendants. Les textures et leur analyse restent celles de beta.130. Avec le halo coupé, la carte d'émission est effacée avant les faces, le cœur net est composé, et les passes de ciel, réduction, diffusion et application du halo sont omises. Le retour au bloom recrée ses cibles. Aucun bouton ajouté, aides FR/EN adaptées et choix explicitement désactivés toujours conservés. ## Vérifications Suite client native réussie en **3 min 46 s**, monde plat neuf de graine 122, macOS / Apple M1 / OpenGL. Cinq précisions sauvegardées et chargées, bornes et seuils de normalisation, carte d'ombres plafonnée et arêtes CTM rendues à 64/128. Le gain mesuré des traits diminue de 0,02778 à précision 32 à 0,02094 à 64, puis 0,01013 à 128 dans la même scène. Les inclusions restent nettes sans halo : le rendu Bloom OFF correspond au rendu intensité zéro. Aucun gain mesuré hors du masque source, ressources de diffusion absentes ; couper aussi les émissifs libère l'ensemble et restitue l'image initiale. Réactiver le bloom restitue son image précédente. Captures OFF/zéro inspectées. Valeurs initiales ON vérifiées ; un ancien choix explicitement OFF reste OFF. Les essais beta.130 (vingt masques, occultation, sources, rechargement), lune, feuillage et realtime passent. Le premier essai rencontrait une assertion historique attendant le highlight OFF lorsqu'une clé était absente. Elle attend désormais la nouvelle valeur ON ; les cas de préférences explicitement désactivées restent testés. Commande : `./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true -PsanctuaryPixelShadows122ClientTests=true -PsanctuaryClientNoVsync=true -PsanctuaryQuickTests=true`. Log : `build/shader131-client-full.log` ; captures sous `mods/sanctuary/build/run/clientGameTest/screenshots/`. `./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest` réussit en **2 min 30 s**, 126 tâches. Les archives normal/Test, leurs sources et le template sont vérifiés. Six entrées de production changent : moteur Bloom, préférences, interface et libellés. Gameplay, shaders GLSL et textures restent identiques à beta.130. Aucun résultat Windows/Vulkan revendiqué ; le serveur GameTest dédié reste exclu conformément au refus antérieur de son EULA. ## Piste suivante — diffusion des couleurs Choix confirmé : légère teinte des surfaces voisines. Une estimation SSGI utilise la couleur et la profondeur visibles pour des rebonds diffus ; voir la [documentation primaire Unity](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@17.0/manual/Override-Screen-Space-GI.html). Proposition à expérimenter : faible intensité, courte portée autour des surfaces, calcul réduit, rejet par profondeur pour ne pas teinter au travers des murs. Vérifier les bords de l'écran, les blocs hors champ, la stabilité en mouvement et les textures avant de fixer une qualité. Cette piste n'est pas implémentée dans beta.131. ## Livraison - `Sanctuary-beta.131.mrpack` : 10386312 octets ; SHA-256 `e02067e424bf4f54512d5cfb1b5cde0fe232aa6bdadc0d38981cd15817a6387a`. - `Sanctuary-Test-beta.131.mrpack` : 10405238 octets ; SHA-256 `298387cce5a5b7cdc09b3a9d24859b674a736b25abcbafa7995b813757641265`. JAR : `87210da23f7781efccdbdbf5d4e2d3c1ff1857a7f326027b93d6a301c7dfdb0d`. Archives vérifiées recopiées dans `sanctuary-beta/build/`. [Release beta.131](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.131) publiée depuis `078d3e6833daa7de7f6c6d0e1a6c17d5dbefe075`. Canal packwiz `efb18c274d95d988a9566b8c52751469f002cdda`. Téléchargements publics vérifiés par hash. Deux synchronisations isolées, puis deux dans la même instance **Sanctuary Beta** réussissent. Un seul JAR Sanctuary beta.131 ; les **923 fichiers personnels suivis** conservent leurs hashes, dont les préférences de shaders et les mondes. Sauvegarde préalable `sanctuary-backups/before-beta.131/` ; aucun monde personnel ouvert. Reçus ignorés : `build/shader131-artifact.json`, `build/shader131-isolated.json`, `build/shader131-prism.json` et `build/shader131-publication.log`. Le checkout original conserve ses changements.