Files
sanctuary-beta/docs/colored-lights-beta139.md
koka c05c338e6b
Build Sanctuary / build (push) Waiting to run
Record beta.139 release and preserved Prism state
2026-09-18 02:27:19 +02:00

6.1 KiB
Raw Permalink Blame History

LIGHT-139 — Lumières colorées

Socle beta.138 + vérification Vulkan 9d84a02, Minecraft 26.3 / Java 25. Branche codex/colored-lights-beta139, livraison beta.139.

Contrat

Option locale « Lumières colorées » avec intensité. Les vrais blocs émetteurs teintent discrètement leurs environs, y compris hors champ. Torches/lanternes, lave et feu chauds ; sources des âmes bleues ; redstone active rouge ; froglights par variante ; sources Sanctuary selon leur texture/matière. Les blocs éteints n'émettent pas. Le bloom et les inclusions émissives des minerais restent indépendants ; aucune lumière de gameplay n'est ajoutée.

Propagation RGB dans un volume local de blocs chargés, obstacles et formes natives, construction répartie entre les images, cache des couleurs de matériaux. Aucun chargement forcé de chunk, accès aux mondes personnels, changement de sauvegarde, réseau ou règles serveur.

Réalisation

Dans les options du shader : « Lumières colorées », désactivées initialement, et une intensité de 0 à 100 %, réglée à 35 %. Zéro ou OFF libère les ressources. Les préférences existantes sont conservées. Libellés et aides FR/EN.

Les familles vanilla demandées ont une palette dédiée. Les autres émetteurs, y compris ceux de Sanctuary, utilisent la couleur des pixels lumineux de leurs textures de modèle, calculée puis mise en cache. Ce repli suit les packs de ressources ; les palettes dédiées vanilla restent constantes. Une texture illisible ou sans pixels exploitables utilise du blanc. Les blocs purement émissifs du bloom, sans émission lumineuse native, ne deviennent pas des lampes.

Le champ couvre un cube de 64 blocs de côté autour de la caméra. Une marge de 14 blocs réserve la propagation aux sources présentes dans le volume ; le rendu s'atténue progressivement sur 4 blocs à sa périphérie. C'est donc un effet de proximité, pas une illumination de tous les chunks visibles. Les formes et l'opacité natives règlent le passage de la lumière. Les canaux utilisent des maxima indépendants, sans addition illimitée des sources superposées.

Le calcul CPU est réparti avec un budget visé de 2 ms par image, plus les allocations et chargements ponctuels de matériaux ; aucun chiffre de FPS n'est garanti. Un monde immobile réutilise son champ. Les changements rapides et les déplacements peuvent présenter un bref retard, le temps de publier un champ complet. Aucun chargement forcé de chunk. Une texture 512 × 512 contient le champ. La passe GPU teinte les surfaces visibles, atténue l'effet au soleil et dans le brouillard, puis laisse agir le SSGI et le bloom. Les sources tenues, entités, particules et le rendu sous l'eau/lave ne sont pas couverts par cette option.

Vérifications

Essais client natifs réussis dans des mondes neufs (graine 122) sur Apple M1 :

  • OpenGL 4.1 Metal : 1 min 46 s, build/colored139-opengl.log.
  • Vulkan / MoltenVK 1.4.2, profondeur 01 et transparence améliorée : 1 min 30 s, build/colored139-vulkan.log.

Les deux journaux contiennent COLORED139_PASS et le backend réellement actif. Torche et torche des âmes hors champ, trois froglights, pierre lumineuse dont la couleur vient de sa texture, intensité 35/100, cache statique, déplacement et retour de caméra, mur fermé puis ouvert, lampe redstone allumée puis éteinte, retrait de source, rechargement des ressources et OFF/zéro vérifiés. Les préférences persistantes et les libellés FR/EN sont contrôlés ; une dernière capture active conjointement PBR, SSGI, bloom, ombres, highlights et rayons.

Les sommes d'écart entre OFF et 35 % sont presque identiques entre backends : torche 2 025 577 / 2 025 576 ; âmes 964 200 / 964 201. Il s'agit de mesures sur les pixels de cette scène, pas d'un indice de performance. Comparatif autonome : build/Shader-beta.139-comparaison.html. Pas de validation du pilote Vulkan Windows de l'utilisateur revendiquée. Le test fige uniquement le scintillement vanilla des torches afin de comparer les images ; cette sonde est exclue du JAR distribué. Aucun monde personnel ouvert.

Diagnostic des essais

La première comparaison de stabilité détectait le scintillement natif de la lightmap des torches, même avec un champ coloré inchangé. La sonde de test stabilise ce seul facteur ; aucune désactivation de scintillement en production. La pièce d'essai est désormais construite après le chargement de ses chunks, et l'absence de lumière du ciel est vérifiée avant les captures.

Construction et archives

./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest réussit en 2 min 22 s, 126 tâches. Le serveur GameTest dédié reste exclu conformément au refus EULA antérieur. Log : build/shader139-build.log. La comparaison à beta.138 trouve 13 entrées de production modifiées, limitées au shader, à son menu et aux aides FR/EN. Les sondes de test sont absentes du JAR distribué. Sources, archives normale/Test et template complets vérifiés ; textures des gemmes et clé de Steve conservées à l'identique. Reçu local : build/shader139-artifact.json.

JAR SHA-256 : 7b958f6576adbabb2b1af589b866cb52b1a65600ea2fa505b05dd283f8d595df.

  • Sanctuary-beta.139.mrpack : 10450317 octets ; SHA-256 13f3a283c260876d28ce0c6504615b4a8f4d575906badfbb2b39558f312e9fbb.
  • Sanctuary-Test-beta.139.mrpack : 10469244 octets ; SHA-256 c1e0b684dc2650950a0925c4625ef5eb4b78fb5f1c5680f5e302550424fa6d81.

Publication et instance

Release beta.139 publiée depuis dc33ffa54697f61cd8f579235e7cebdbf0765f7c, tag exact beta.139. Canal packwiz : 9f10167b6acfece9c045573580e186aa72bc91dc. Deux synchronisations isolées puis deux synchronisations de la même instance Prism réussissent. Un seul JAR Sanctuary beta.139 actif, empreinte identique à l'archive vérifiée ; les 923 fichiers personnels suivis conservent leurs empreintes. Sauvegarde des fichiers gérés dans sanctuary-backups/before-beta.139/. Aucun monde personnel ouvert. Reçus : build/shader139-isolated.json, build/shader139-prism.json.