6.1 KiB
SHADER-132 — diffusion locale SSGI expérimentale
Demande : légère teinte diffusée des surfaces voisines, sans reflets miroir
ni shader d'eau. Branche codex/ssgi-beta132, socle beta.131, Minecraft 26.3 /
Java 25. Aucun changement de génération, sauvegarde ou lumière serveur.
Résultat
Options → Shaders → SSGI · couleurs diffusées active un rebond diffus local. L'effet expérimental est initialement OFF, avec une intensité préparée à 35 % ; le curseur propose 0–100. À zéro ou OFF, ses cibles et uniformes GPU sont libérés. Les autres effets et leurs préférences sont conservés.
La couleur d'une surface visible peut teinter les surfaces proches qui lui font face. Le calcul porte à 2,5 blocs du récepteur et s'estompe entre 24 et 32 blocs de la caméra. Il utilise une copie de la couleur native après les ombres, avec la profondeur et des normales reconstruites. Le premier obstacle arrête chaque rayon, même si son épaisseur empêche de retenir une intersection. Les plans coplanaires ne s'éclairent pas eux-mêmes.
Douze directions hémisphériques fixes, au maximum dix étapes par rayon, sont évaluées à demi-résolution en largeur et hauteur. La reconstruction plein écran est guidée par la profondeur pour conserver les silhouettes et les détails des textures. Le cœur des émissifs, le highlight et le bloom sont composés ensuite : pas de halo réinjecté dans le rebond ni de boucle de rétroaction d'une image sur l'autre. Aucune lecture GPU vers CPU ni recherche de chunks en production. Pas de bruit temporel ou d'historique.
Deux cibles, RGBA8 plein écran et RGBA16 flottant à demi-résolution, soit environ six octets par pixel de l'écran, plus 176 octets d'uniformes par segment du tampon natif. Redimensionnement, arrêt, déconnexion et rechargement libèrent/recréent les ressources possédées. Ce budget n'est pas une garantie de FPS ; le SSGI coûte davantage qu'un simple réglage de colorimétrie.
Limites de cette version
L'estimation utilise seulement la couleur et la profondeur visibles. Les blocs hors champ ou cachés n'apportent pas leur couleur. Le résultat peut changer lorsqu'ils entrent ou sortent de l'image ; une atténuation près des bords limite la coupure. Les surfaces transparentes absentes de la profondeur ne sont pas reconstruites. Petits objets et intersections plus minces que l'échantillonnage peuvent manquer. Il s'agit d'une approximation diffuse locale, pas d'une simulation complète d'éclairage global ni de reflets spéculaires. Aucune modification de l'eau et aucune source hors champ déduite ou générée.
Vérifications
Test ciblé natif réussi en 1 min sur macOS / Apple M1 / OpenGL, nouveau monde plat de graine 122. À intensité 90, les échantillons du sol blanc montrent un gain rouge cumulé de 8 968 contre 20 bleu devant le mur rouge, puis 9 168 bleu contre 23 rouge devant le mur bleu. Le sol seul est inchangé. OFF/zéro restituent l'image de base et libèrent les cibles ; intensité 20 réduit le gain. Changer la couleur du mur complètement occulté laisse l'image inchangée. Rechargement, caméra fixe, mouvement infinitésimal et retour à la caméra d'origine passent, sans accumulation de couleur.
Deux ajustements de fixture ont précédé ce résultat : inclure dans les
mesures le blanc légèrement bleuté par l'éclairage natif, et formater les
petits angles de /tp en décimal car la commande refuse la notation
scientifique. Aucun comportement du jeu modifié pour ces corrections.
Log ciblé : build/shader132-client-ssgi.log. La suite complète réussit en
4 min 18 s et vérifie aussi une fenêtre 961 × 541, le retour à sa taille
initiale, le SSGI avec ombres/highlight/bloom/émissifs actifs, ainsi que
l'arrêt global du shader. Les captures françaises et anglaises passent.
Les contrôles précédents des cinq précisions, ombres, lune, feuillage, CTM,
bloom et émissifs restent réussis. Log : build/shader132-client-full.log.
Commandes : ./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true -PsanctuaryPixelShadows122ClientTests=true -PsanctuaryClientNoVsync=true -PsanctuaryQuickTests=true. Pour le test ciblé, remplacer la propriété
PixelShadows par -PsanctuarySsgi132ClientTests=true.
./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest
réussit en 2 min 25 s, 126 tâches. Les packs normal/Test contiennent le
même JAR ; sources archivées et template de ressources correspondent aux
sources. Comparaison avec beta.131 : 11 entrées de production modifiées,
limitées au SSGI, à ses options et à ses points d'appel. Gameplay et textures
des gemmes inchangés, aucun monde ni test embarqué. Aucun résultat
Windows/Vulkan revendiqué.
Le serveur GameTest dédié reste exclu conformément au refus antérieur de
son EULA. Les captures panoramiques et les milieux de brume sous l'eau/lave
ou neige poudreuse suspendent cette passe, comme les autres effets de
profondeur Sanctuary.
Livraison
Sanctuary-beta.132.mrpack: 10394026 octets, SHA-256a7c0823e00f36925919645e32e7792242ec1d01015b41bee5b4f6285b9fc533d.Sanctuary-Test-beta.132.mrpack: 10412949 octets, SHA-2569bc30a7d6d5834f9323f15f0c39d3f49d200e1a97d739266ab373c9e1ba4a8fd.
JAR : 83eb2d091a7acd85eaa8b3b6a00a40ea483f9eeb2a30c033bdf68b4d717c5142.
Archives vérifiées recopiées dans sanctuary-beta/build/. Release beta.132
publiée depuis 7e21781a9a08c669c7d6b65653bd9d408887689c. Canal packwiz
9edaaedc0205c525ecce9de66b5ca7827c56c28f ; 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.132 actif ; les 923 fichiers personnels suivis,
dont sauvegardes et préférences de shaders, gardent leurs hashes. Sauvegarde
préalable sanctuary-backups/before-beta.132/ ; aucun monde personnel ouvert.
Le checkout original conserve ses changements préexistants.
Reçus locaux ignorés : build/shader132-artifact.json,
build/shader132-isolated.json, build/shader132-prism.json,
build/shader132-publication.log.