Files
sanctuary-beta/docs/colored-dynamic-beta140.md
T
2026-09-18 03:13:43 +02:00

5.7 KiB
Raw Blame History

LIGHT-140 — Lumières colorées portées et distance

Socle beta.139 c05c338, branche codex/colored-dynamic-beta140. Minecraft 26.3 / Java 25. Livraison beta.140.

Contrat

Relier les couleurs aux vraies sources de lumière dynamique : mains, tête, cosmétiques, objets au sol et feu, selon le système existant. Renforcer la teinte et activer les lumières colorées par défaut à 30 %. Ajouter une distance d'affichage de 8, 16, 32 ou 64 blocs (16 par défaut), indépendante de la portée native de chaque source. Augmenter la distance coûte davantage en mémoire et calcul ; aucun chargement forcé de chunk. Les choix sauvegardés sont conservés.

Sources portées actualisées avec le système dynamique, sans reconstruire tout le champ statique à chaque mouvement. Aucun changement de monde ou de règle serveur. Vérifications natives OpenGL et Vulkan, puis construction et archives.

Couleurs et fondus

Torches ordinaires : température native par défaut ; option « Torches chaudes » pour retrouver l'orangé. Glowstone jaune, lave jaune-rouge, redstone rouge saturé, cuivre vert (posé, en main ou sur la tête). Le cuivre est reconnu avant les familles génériques de torches et lanternes. Les palettes explicites restent indépendantes des packs ; le repli des autres matériaux suit leurs textures.

Le rendu s'atténue sur le dernier quart de la distance choisie. Le champ précédent reste disponible pendant un fondu de 300 ms vers le nouveau champ ; l'activation et les sources dynamiques ont aussi un fondu. Le changement de distance est interpolé. Les sources mobiles utilisent la même sélection bornée et les mêmes intensités que la lumière dynamique existante, avec interpolation visuelle des positions et couleurs. Elles héritent de sa propagation radiale, y compris de ses limites d'occultation ; les blocs posés conservent leur propagation avec murs.

Le volume varie réellement selon la distance (56, 72, 104 ou 168 blocs de côté, avec marge de propagation). Les grandes distances augmentent la mémoire et le délai de reconstruction ; la construction reste répartie entre les images. Deux champs coexistent brièvement pour le fondu. Seuls les chunks déjà chargés sont lus. La portée lumineuse native des torches n'est pas allongée.

Frontières de saturation

Le stockage beta.139 tronquait les canaux faibles séparément en fin de portée : un bleu pouvait perdre son rouge avant son vert, puis devenir plus saturé sur une frontière visible. Le stockage logarithmique conserve maintenant une marge sous le niveau lumineux natif zéro. Le shader applique la coupure à l'énergie globale en conservant les rapports RGB. La réponse devient linéaire près du noir, sans amplification par racine quatrième des très faibles contributions.

La transition des champs interpole le résultat colorimétrique rendu, pas une énergie ensuite amplifiée. Les sources mobiles ont une atténuation de fondu compensée pour la même réponse. Le test contrôle les rapports rouge/bleu et vert/bleu d'une torche des âmes de 1 à 9 blocs, jusqu'au bord de sa portée.

Vérifications natives

Minecraft 26.3 / Java 25 sur Apple M1, mondes de test neufs de graine 122 :

  • OpenGL 4.1 Metal : 2 min 40 s, build/colored140-opengl.log.
  • Vulkan / MoltenVK 1.4.2, profondeur 01 et transparence améliorée : 2 min 26 s, build/colored140-vulkan.log.

Les deux exécutions passent COLORED139_PASS et COLORED140_PASS : propagation avec murs, sources hors champ, lampes allumées/éteintes, retrait, rechargement des ressources, cache, déplacement/retour de caméra, OFF/zéro, préférences et traductions FR/EN. Les nouveaux contrôles couvrent la teinte bleue jusqu'à neuf blocs, la torche native inchangée, l'option chaude, le cuivre vert et le rouge saturé, les deux mains et le cosmétique de tête, la position en troisième personne, les quatre distances et un fondu sans dépassement.

Dans la même scène contrôlée, la somme d'écarts OFF/torche chaude à 30 % vaut 3 926 093 / 3 926 092 sur OpenGL/Vulkan, contre 2 025 577 en beta.139 à 35 %. Cette mesure vérifie l'accentuation demandée, pas la performance. Le test fige uniquement le scintillement de la lightmap native ; cette sonde et les tests client ne sont pas distribués. Les captures finales sont conservées sous build/colored140-opengl-screenshots/ et build/colored140-vulkan-screenshots/. Comparatif autonome : build/Shader-beta.140-comparaison.html.

Pas de validation des pilotes Windows de l'utilisateur revendiquée. Les limites de beta.139 pour le rendu sous l'eau/lave et les panoramas restent ouvertes. Les sources dynamiques gardent l'occultation du système existant. Aucun monde personnel ouvert ni modifié.

Construction et archives

./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest réussit en 2 min 22 s, 126 tâches. Le GameTest serveur dédié reste exclu conformément au refus EULA antérieur ; les tests clients ci-dessus sont exécutés séparément. Log : build/shader140-build.log.

La comparaison avec beta.139 trouve 18 entrées de production modifiées, limitées aux lumières dynamiques/colorées, options et aides FR/EN. Les sources des JAR correspondent aux fichiers du dépôt. Les archives normale/Test contiennent le même JAR Sanctuary ; la version, les dépendances exactes, les textures de gemmes et de la clé de Steve, l'absence de classes de test et le template complet sont vérifiés. Reçu : build/shader140-artifact.json.

SHA-256 du JAR : 853284c1a61c7fce12edd2f7763717321eef56977290eb0e7c5db5e30bff442f.

  • Sanctuary-beta.140.mrpack : 1b366746e4d6bebfbe0115c849524bdeb81c14eee89a2510f9dbe18808974d6a.
  • Sanctuary-Test-beta.140.mrpack : 50c3cdf759117bb5286d41b4535fde15d9d84deaac833b7f8f61c4a0d29b72e7.