# SHADER-138 — Épaisseur des rayons et météo Demande : épaissir les sunshafts avec la météo, surtout le brouillard. Socle beta.137, branche `codex/sunshaft-weather-beta138`, Minecraft 26.3 / Java 25. Aucune modification des règles météo, des sauvegardes ou du gameplay. ## Contrat Densité et diffusion liées au brouillard environnemental réellement rendu, indépendamment de la limite de distance de rendu. Pluie/neige natives : renforcement plus modéré ; orage : réduction supplémentaire du soleil. Transitions continues, mêmes deux passes et seize segments. Le réglage manuel conserve sa valeur, aucune nouvelle option. ## Rendu Le brouillard utilise `FogData.environmentalEnd`, séparé de la distance de rendu native. Sa contribution croît en douceur entre 192 et 80 blocs de visibilité. La densité passe de ×1 à ×3,5 pour le brouillard seul ; la diffusion angulaire s'élargit et la lumière lointaine s'éteint plus vite. Les coefficients ne dépendent d'aucun bruit animé ni historique d'image. Pluie et neige utilisent le niveau natif de précipitation : densité jusqu'à ×1,8, diffusion plus légère. La lumière disponible tombe progressivement à 25 % sous une pluie maximale et à 8,75 % sous un orage maximal. La carte solaire reste disponible pour le volume même lorsque Minecraft cache entièrement son disque solaire ; les ombres sur les surfaces conservent leur comportement. Le brouillard et la météo continuent leurs transitions natives. Même cible au quart de chaque dimension, deux passes, seize segments et quatre lectures de la carte par segment. L'empreinte de l'ombre ne change pas : la météo ne crée pas d'ouverture artificielle à travers un mur. ## Vérification Scénario client natif réussi en **3 min 29 s**, macOS / Apple M1 / OpenGL. Les contrôles des volumes beta.137 passent à nouveau : ouvertures, feuilles, pièce fermée, mouvement/retour, proximité, soleil hors champ, intensité, OFF/zéro/nuit, redimensionnement, rechargement, préférences et libellés FR/EN. La suite utilise ensuite les vraies commandes serveur de météo : clair, `weather fog`, pluie, orage et retour au clair, dans le même décor avec le curseur maintenu à 35. Transition progressive du brouillard, rechargement sous brouillard, absence d'éclairage d'une pièce fermée et restitution de l'image claire initiale vérifiés. La contribution normalisée du volume dans cette scène passe d'environ 0,0034 au clair à 0,0236 sous brouillard ; ce n'est pas un multiplicateur universel de luminosité. L'orage reste sous la pluie. Log : `build/shader138-client-final.log`, marqueurs `SUNSHAFT137_PASS` et `SUNSHAFT138_WEATHER_PASS`. Comparatif natif autonome : `build/Shader-beta.138-comparaison.html`. ## Diagnostic de la pluie La première exécution native a validé le brouillard, puis s'est arrêtée en attendant des rayons sous une pluie maximale. Minecraft 26.3 fournit alors `rainBrightness = 1 - rainLevel`, soit zéro : beta.137 ne construisait plus la carte solaire. Le volume reçoit désormais son atténuation météo propre et conserve la carte nécessaire, sans réactiver les ombres de surface sous la pluie maximale. Log de diagnostic : `build/shader138-client-first.log`. ## Limites Coefficients artistiques bornés, sans simulation physique de gouttes ni de nuages. Le brouillard environnemental est distinct de la simple distance d'affichage ; la pluie et la neige partagent le niveau natif de précipitation. Les limites des volumes beta.137 restent applicables : 64 blocs maximum, formes de la carte d'ombres et feuillage approximé. Pas de mesure de FPS ni de validation Windows/Vulkan revendiquée. ## Construction et archives `./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest` réussit en **2 min 20 s**, 126 tâches. Le serveur GameTest dédié reste exclu conformément au refus EULA antérieur. Log : `build/shader138-build.log`. Comparaison à beta.137 : **6 entrées de production** modifiées, uniquement le rendu et les aides FR/EN. Gameplay et textures des gemmes strictement conservés. JAR normal/Test identique, sources et template vérifiés. Reçu local : `build/shader138-artifact.json`. - `Sanctuary-beta.138.mrpack` : 10432860 octets ; SHA-256 `67093d3a53e3d90c31e8fb940d709ccf41ad730595e358346fa27ad744b44460`. - `Sanctuary-Test-beta.138.mrpack` : 10451787 octets ; SHA-256 `1ff39158b47f44a831b6506c8c2636441b2bff02644d20b1698330097e5ff059`. JAR : `44b6dd14f0e962fcb6f1efd61e0e7bb2c8dbb033cef81598582ec16c46a46518`. ## Livraison [Release beta.138](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.138) publiée depuis `daf36fdeacca707930092363589c89984af78f3b`. Canal packwiz `c049423de1971079b9d61874d83adeb6f1ad49f7` ; téléchargements publics vérifiés par SHA-256. Deux synchronisations isolées puis deux dans la même instance **Sanctuary Beta** réussissent. Un seul JAR beta.138 actif ; les **923 fichiers personnels suivis**, dont sauvegardes et préférences, gardent leurs hashes. Copie préalable dans `sanctuary-backups/before-beta.138/`, aucun monde personnel ouvert. Packs normal/Test/template et comparatif natif également vérifiés dans `sanctuary-beta/build/`. Le checkout original garde ses changements préexistants. Reçus locaux ignorés : `build/shader138-artifact.json`, `build/shader138-isolated.json`, `build/shader138-prism.json`, `build/shader138-publication.log`.