102 lines
5.3 KiB
Markdown
102 lines
5.3 KiB
Markdown
# 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`.
|