86 lines
4.7 KiB
Markdown
86 lines
4.7 KiB
Markdown
# 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-256 `808006bf2b0cb3fe63d3e16ae3a0003d27ad0b7e793a3a05f25b5d73ae88bc8d`.
|
||
|
||
- `Sanctuary-Test-beta.136.mrpack` : 10443744 octets ; SHA-256 `70f593ad16d1f4fd4305b276ce2727a63f87bcb84df45e55840c1427a314a1eb`.
|
||
|
||
JAR : `086afede22903f8988889f6085631451f65d6d55c2e4c81f249d2234698e68e5`.
|
||
|
||
## Livraison
|
||
|
||
[Release beta.136](https://git.botsu.net/koka/sanctuary-beta/releases/tag/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`.
|