4.4 KiB
SHADER-137 — Rayons solaires volumétriques
Demande validée : faisceaux légers découpés par les blocs, carte d'ombres partagée,
feuillage perméable, rendu natif préservé, option et intensité indépendantes du bloom.
Socle beta.136, branche codex/sunshafts-beta137, Minecraft 26.3 / Java 25.
Aucun changement de monde ni de gameplay.
Contrat
Soleil uniquement ; activé initialement à 35 %, intensité 0–100. Intégration de 16 segments par pixel à un quart de chaque dimension. Reconstruction guidée par la profondeur, sans historique ni bruit animé. Réutilisation du masque de feuillage déjà stable dans les ombres. La carte solaire peut fonctionner sans afficher les ombres sur les surfaces. Portée bornée à 64 blocs et à la moitié de la portée des ombres. Atténuation aux limites de la carte, à l'horizon et avec la météo.
Rendu et coût borné
Deux passes : intégration dans une cible RGBA16F de largeur et hauteur divisées par quatre, puis reconstruction guidée par la profondeur. Seize segments quadratiques privilégient les premiers mètres ; quatre lectures fixes de la carte d'ombres par segment adoucissent seulement la lumière dans l'air. La dernière portion du rayon rétrécit continûment à l'approche d'une surface. La lumière utilise une teinte solaire chaude mélangée au brouillard natif.
La carte d'ombres et ses maillages sont partagés, y compris les trous de transmission déterministes des feuilles. Aucune copie d'image plein écran, aucune duplication du terrain, aucune lecture GPU côté CPU ni accumulation entre images dans le rendu de production. OFF/zéro libèrent le volume ; la carte d'ombres reste seulement si les ombres de surface sont activées. Le soleil sous l'horizon et la submersion suspendent les rayons.
Vérifications
Scénario natif réussi en 1 min 41 s sur macOS / Apple M1 / OpenGL : pièce
entièrement fermée, toit ajouré OFF/35/100, feuilles puis ciel ouvert, déplacement
de quatre blocs et retour, caméra proche d'un mur à 0,5 puis 0,125 bloc,
soleil hors champ, nuit, OFF/zéro, carte d'ombres partagée, effet combiné,
redimensionnement à 961 × 541 et rechargement des ressources. Préférences
vierges/partielles/personnelles, bornage et libellés FR/EN également vérifiés.
Log : build/shader137-client-final.log, marqueur SUNSHAFT137_PASS.
Comparatif autonome : build/Shader-beta.137-comparaison.html.
La première tentative s'est arrêtée sur une comparaison de gain brut entre feuillage et ciel ouvert. La composition dispose de moins de marge sur un mur déjà clair : le test compare maintenant la contribution normalisée sur les mêmes surfaces, et les feuilles du scénario sont persistantes. Aucun seuil du rendu n'a été assoupli pour faire passer ce contrôle.
Les contrôles natifs existants du bloom, des vingt textures de minerais émissifs
et du lens flare réussissent également en 1 min 32 s, avec leurs seuils
inchangés. Log : build/shader137-regression.log, marqueurs EMISSIVE131_PASS
et LENS_FLARE136_PASS. Les autres effets sont explicitement isolés dans les
scénarios qui nécessitent une image témoin sans rayons.
Limites
Le volume utilise les formes présentes dans la carte d'ombres existante : il n'ajoute pas de projection d'ombre des entités ou des nuages. Le feuillage reste une approximation par transmission déterministe. Portée maximale de 64 blocs, atténuée à son extrémité. Le faible nombre de segments et la résolution réduite peuvent lisser les ouvertures très fines. Aucun résultat Windows/Vulkan ni mesure de FPS revendiqués.
Construction et archives
./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest
réussit en 2 min 27 s, 126 tâches. Le serveur GameTest dédié reste exclu
conformément au refus EULA antérieur. Log : build/shader137-build.log.
Comparaison à beta.136 : 11 entrées de production modifiées, uniquement
le rendu, ses préférences et ses libellés. Gameplay et textures des gemmes
strictement conservés. JAR normal/Test identique, sources et template vérifiés.
Reçu local : build/shader137-artifact.json.
-
Sanctuary-beta.137.mrpack: 10431723 octets ; SHA-2566684d1dbe48cd3031b373a03d4380519fdbf5d841e1c7cb5e290dec63b5ba9f6. -
Sanctuary-Test-beta.137.mrpack: 10450650 octets ; SHA-25632b0cee60152b6a5c8f31b248391c79a5fdf47b649de74902b066457ad4785ef.
JAR : f1fbc106b4b048753f9a669af37e9c12f92168af486d4072f514e86920c81faa.