4.7 KiB
SHADER-136 — Lens flare rectangulaire doux
Demande : ajouter un lens flare avec des rectangles dégradés, exclusivement
pour le soleil et la lune. Socle beta.135, branche codex/lens-flare-beta136.
Minecraft 26.3 / Java 25. Aucun changement de gameplay ou de monde.
Contrat
Effet activé initialement à 30 %, intensité réglable 0–100, indépendant du halo de bloom. Rectangles translucides aux bords doux, suivant la position de l'astre à l'écran. La visibilité provient de l'image émissive céleste native, avant les blocs : les murs masquent l'effet, les sources de terrain ne le déclenchent pas. L'astre sortant du champ doit s'atténuer sans sauter sur le bord opposé. Pas d'historique, ni lecture GPU vers le CPU, ni texture générée sur disque.
Rendu et budget
Trois rectangles à dégradé doux par astre : un halo horizontal près de sa position et deux reflets plus petits le long de l'axe passant par le centre de l'écran. Teinte solaire chaude, lunaire légèrement bleue. Intégration de la lumière réellement dessinée par le ciel natif ; phases de lune conservées. Atténuation aux bords de l'écran et à l'horizon, sans projection derrière la caméra.
Le masque céleste est mesuré avant l'ajout des émissifs de terrain. Réduction vers une texture 2 × 1 RGBA16F (512 échantillons au maximum au total), puis une passe de composition avec deux lectures de cette texture et des dégradés analytiques. La cible d'émission plein écran existante est réutilisée. Quand seul le flare fonctionne, aucun maillage d'émissif de terrain ni tampon de flou n'est construit. OFF et zéro libèrent la cible du flare ; les autres effets gardent leur autonomie.
Vérification
Le scénario client natif réussit en 1 min 52 s sur macOS / Apple M1 / OpenGL.
Soleil OFF/30/80, lune et nouvelle lune, mur occultant, source hors champ,
glowstone exclue, image statique, redimensionnement et rechargement des ressources.
Le flare reste actif sans bloom ; OFF/zéro libèrent ses ressources. Préférences
vierges, partielles, personnalisées, bornage et libellés FR/EN vérifiés.
Les contrôles existants du bloom et des minerais émissifs passent également.
Log : build/shader136-client-final.log, marqueurs EMISSIVE131_PASS et
LENS_FLARE136_PASS. Les captures natives restent dans le dossier de tests ; comparatif autonome
build/Shader-beta.136-comparaison.html (soleil OFF/30/80 et lune OFF/30).
Une première tentative s'est arrêtée sur l'attente d'un angle de caméra : Minecraft normalise 180° en −180°. Le scénario utilise maintenant un angle canonique ; ce changement concerne uniquement le test.
Limites
Effet optique en espace écran : il s'atténue quand l'astre quitte le champ et à l'horizon. Le masque natif du ciel contrôle l'occultation ; la lune reste volontairement beaucoup plus discrète. Le brouillard de submersion suspend l'effet comme le bloom existant. Aucun essai Windows/Vulkan ni mesure de FPS revendiqués.
Construction et archives
./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest
réussit en 2 min 29 s, 126 tâches. Le serveur GameTest dédié reste exclu
conformément au refus EULA antérieur. Log : build/shader136-build.log.
Comparaison à beta.135 : 9 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/shader136-artifact.json.
-
Sanctuary-beta.136.mrpack: 10424821 octets ; SHA-256808006bf2b0cb3fe63d3e16ae3a0003d27ad0b7e793a3a05f25b5d73ae88bc8d. -
Sanctuary-Test-beta.136.mrpack: 10443744 octets ; SHA-25670f593ad16d1f4fd4305b276ce2727a63f87bcb84df45e55840c1427a314a1eb.
JAR : 086afede22903f8988889f6085631451f65d6d55c2e4c81f249d2234698e68e5.
Livraison
Release beta.136
publiée depuis 71296a9cfb0f6b1a6e6f0c48145f3cc432c8afd0. Canal packwiz
dd5b545a7cfbb957f2c70e9dc17034b44caef98f ; 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.136 actif ; les 923 fichiers personnels suivis,
dont sauvegardes et préférences, gardent leurs hashes. Copie préalable dans
sanctuary-backups/before-beta.136/, 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/shader136-artifact.json, build/shader136-isolated.json,
build/shader136-prism.json, build/shader136-publication.log.