5.8 KiB
SHADER-133 — SSGI visible au réglage courant
Demande : le rebond diffus de beta.132 est trop discret pour être distingué.
Branche codex/ssgi-strength-beta133, socle beta.132, Minecraft 26.3 / Java 25.
Changement
La collecte conserve douze directions, dix étapes, une demi-résolution et un rayon de 2,5 blocs. L'atténuation spatiale devient linéaire plutôt que quadratique. Le mélange est reconstruit en lumière approximativement linéaire, puis réencodé une seule fois. Un gain artistique plus fort rend la couleur lisible et une courbe progressive évite de couper brutalement les canaux à blanc. Les surfaces sans rebond restent intactes. La force demeure réglable de 0 à 100, avec le même réglage initial de 35 ; aucune préférence enregistrée n'est écrasée. SSGI reste optionnel, initialement désactivé.
Aucun rayon, cible GPU ou texture de matériau supplémentaire. La composition ajoute une exponentielle et une racine carrée par canal ; le coût exact en FPS reste à mesurer sur la machine du joueur. Les normales de géométrie orientent déjà le rebond. Pas de PBR ni de normales procédurales de textures ajoutés.
Piste matériaux
Pour une étape distincte, des normales de faible amplitude calculées au chargement des textures, mises en cache, et une rugosité par famille de matériaux permettraient d'étudier du relief et des reflets orientés. Une simple conversion luminosité → hauteur ne connaît pas le relief réel : un motif peint peut devenir une bosse artificielle. Commencer sur pierre, briques et bois avec une amplitude réglable serait préférable à une génération aveugle pour tous les blocs. La passe actuelle ne possède ni atlas de normales, ni identifiants de matériaux, ni albédo non éclairé ; des images seules ne suffiraient pas à les exploiter.
Limites conservées
Approximation diffuse à partir de la couleur déjà éclairée, pas un transport physique complet. Seules les surfaces visibles contribuent, avec variations possibles aux entrées/sorties d'écran. Premier obstacle bloquant, pas d'historique ni de bruit temporel ; aucune modification d'eau, monde ou lumière serveur.
Vérifications
Suite client native complète réussie en 4 min 29 s, sur macOS / Apple M1 / OpenGL, dans un monde de test plat (graine 122). Les comparaisons ON/OFF à 35 % mesurent, sur les pixels neutres du sol :
| Mur | Pixels avec gain ≥ 8/255 | Pixels avec gain ≥ 16/255 | Gain cumulé du canal dominant |
|---|---|---|---|
| Rouge | 16 487 | 7 311 | 305 221 |
| Bleu | 14 954 | 7 328 | 309 991 |
À 90 %, les gains dominants atteignent 654 683 et 655 867, contre 8 968 et 9 168 au même réglage dans la fixture beta.132. Ce rapport concerne uniquement cette scène et ces pixels, pas une promesse de gain uniforme dans tous les mondes. Les captures confirment une bande colorée au pied du mur. Un premier réglage intermédiaire a été rejeté car aucun pixel du sol ne dépassait 8/255 à 35 % ; un second a passé les contrôles ciblés, puis la force a encore été augmentée après examen visuel. Les valeurs finales sont celles de la suite complète.
Le test impose maintenant plus de 5 000 pixels à 8/255 et plus de 500 à 16/255 au réglage 35, pour les deux couleurs. Intensité, OFF/zéro, absence de rebond coplanaire, occultation d'un mur changeant de couleur, caméra fixe, déplacement infinitésimal, retour de caméra, redimensionnement et rechargement passent. Ombres, lune, feuillage, CTM, cinq précisions, bloom, émissifs indépendants et interfaces FR/EN restent validés, y compris avec le SSGI actif.
Commande : ./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true -PsanctuaryPixelShadows122ClientTests=true -PsanctuaryClientNoVsync=true -PsanctuaryQuickTests=true. Log : build/shader133-client-full.log.
Le nom de la propriété ciblée sanctuarySsgi132ClientTests est conservé.
Comparateur local autonome : build/SSGI-beta.133-comparaison.html, captures
natives OFF/35/90 des murs rouge/bleu, sans retouche. Pas de validation
Windows/Vulkan ni de mesure de coût FPS revendiquée.
./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest
réussit en 2 min 21 s, 126 tâches. Le serveur GameTest dédié reste exclu
conformément au refus EULA antérieur. Log : build/shader133-build.log.
Les archives normal/Test contiennent le même JAR ; sources archivées et template
de ressources correspondent aux sources. Comparaison avec beta.132 : 5 entrées
de production changées (classe du compositeur, deux shaders, libellés FR/EN).
Gameplay, textures, sauvegardes et dépendances inchangés.
Artefacts
Sanctuary-beta.133.mrpack: 10394282 octets, SHA-2560c90a070da7f969706abeeec1bdfb0830bb52244c20fccbca4fd876f3fbe0564.Sanctuary-Test-beta.133.mrpack: 10413204 octets, SHA-256e01f0355bf2cce18156fe94a069e142bedc498624ba0b6e2729ae0f23ea73e80.
JAR : a01cae4a98606007b533ca09ec9f072f19a1db2e9b8de466f4ad075d5c1fc185.
Livraison
Release beta.133
publiée depuis 216d3f75b576bd2ed531653012f9cc6c4801d87a. Canal packwiz
9ceb5a5353c9d1b8bb7834a20e818fd65096ff98 ; téléchargements publics vérifiés par SHA-256.
Deux synchronisations isolées puis deux synchronisations de la même instance
Sanctuary Beta réussissent. Un seul JAR beta.133 actif ; les 923 fichiers
personnels suivis, dont sauvegardes et préférences, gardent leurs hashes.
Sauvegarde préalable sanctuary-backups/before-beta.133/, aucun monde personnel
ouvert. Le checkout original conserve ses changements préexistants.
Les archives normal/Test/template et le comparateur natif sont également dans
sanctuary-beta/build/. Reçus locaux ignorés : build/shader133-artifact.json,
build/shader133-isolated.json, build/shader133-prism.json et
build/shader133-publication.log.