Files
sanctuary-beta/docs/shader-beta133.md
T
koka 216d3f75b5
Build Sanctuary / build (push) Canceled after 0s
feat: make SSGI color bounce visible in beta.133
2026-09-17 22:18:12 +02:00

4.9 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-256 0c90a070da7f969706abeeec1bdfb0830bb52244c20fccbca4fd876f3fbe0564.
  • Sanctuary-Test-beta.133.mrpack : 10413204 octets, SHA-256 e01f0355bf2cce18156fe94a069e142bedc498624ba0b6e2729ae0f23ea73e80.

JAR : a01cae4a98606007b533ca09ec9f072f19a1db2e9b8de466f4ad075d5c1fc185.