Files
sanctuary-beta/docs/shader-beta135.md
koka 07d09c8508
Build Sanctuary / build (push) Canceled after 0s
docs: record beta.135 release and verified Prism update
2026-09-17 23:48:14 +02:00

6.7 KiB
Raw Permalink Blame History

SHADER-135 — SSGI en contre-plongée et près des surfaces

Demande : supprimer les déchirures horizontales sous une surface, notamment près de la lave, et atténuer proprement le rebond quand la caméra s'approche d'une source ou d'un mur. Branche codex/shader-closeup-beta135, socle beta.134. Minecraft 26.3 / Java 25 ; aucune modification de monde ou de gameplay.

Diagnostic et correction

Le calcul des normales comparait l'aire du pixel en unités du monde à un seuil fixe. À courte distance ou à haute résolution, cette aire devient naturellement très petite : le rejet pouvait couper une surface continue. Les deux directions sont maintenant normalisées avant leur produit vectoriel. Les texels de bord sont bornés et les voisins sans profondeur ne créent plus de fausse surface.

La composition utilise le centre exact du texel de profondeur. Le rebond s'atténue entre 0,4 et 0,06 bloc de distance au plan receveur, et lorsque la vue devient presque tangente. Cette distance évite une découpe circulaire sur un mur plat. L'image native reste nette ; aucune texture du décor n'est floutée.

Les sondes sortant du volume de projection sont rejetées. Leur contribution s'atténue près du plan de caméra et de la limite d'épaisseur d'un impact, au lieu d'une contribution pleine jusqu'à cette limite. Trois ressources GLSL modifiées ; aucune passe, cible GPU, lecture CPU, histoire temporelle ou option ajoutée. Les 12 rayons × 10 pas et les deux passes de filtrage spatial restent inchangés.

Réglages initiaux

Demande ajoutée pendant la livraison : bloom 20 %, PBR ON et SSGI ON. Les intensités PBR 50 et SSGI 35 restent inchangées. Les champs absents du fichier de préférences prennent ces nouvelles valeurs ; les choix explicites du joueur restent conservés. Aides françaises et anglaises mises à jour. Vérification native supplémentaire des préférences vierges, partielles et personnalisées.

Reproduction native

Deux scènes isolées : stone au-dessus de la lave, puis coin à 0,5 bloc d'une paroi rouge. Caméra en contre-plongée, sept distances au plafond de 2 à 0,04 bloc, comparaisons OFF/35/100 avant/après. Dans la première scène, à 0,1 bloc et intensité 100, le saut maximal de gain rouge moyen entre lignes de pixels neutres passe de 14,88 à 0,052 niveaux sur 255. Dans le coin, à 0,4 bloc et intensité 35, le rebond auparavant rejeté revient (gain moyen de 6,01 niveaux), puis s'atténue à l'approche du contact. Ces chiffres concernent ces scènes uniquement.

Les deux essais ciblés corrigés réussissent en 1 min 18 s et 1 min 17 s sur Apple M1 / OpenGL. Images avant/après conservées dans build/closeup-* ; comparateur autonome build/Shader-beta.135-comparaison.html.

Régression et livraison

Les contrôles natifs de la suite générale réussissent jusqu'au parcours SSGI : ombres, lune, feuillage, temps réel, CTM, émissifs/bloom, couleurs de rebond, occlusion, réglages, rechargement et déplacement latéral de 12 blocs à 35/100. Log : build/shader135-client-main.log. La suite n'est pas présentée comme entièrement réussie : elle s'est arrêtée sur une attente incorrecte du nouveau test, qui demandait du rebond alors que sa source était sortie du champ.

Le scénario corrigé distingue la haute résolution avec source visible de la vue très relevée sans source visible. Le bassin possède un fond pour isoler la lave des essais suivants ; les particules du scénario précédent sont effacées avant la comparaison PBR statique. Une première tentative avait aussi rencontré le refus natif de remettre l'horloge à sa valeur actuelle ; la préparation de l'heure est désormais répétable. Ces changements concernent uniquement les tests.

Le contrôle final ciblé réussit en 2 min 52 s : les deux scènes, 35/100, sept distances, 1280 × 720 avec source visible, source hors champ, mouvement minuscule, rendu combiné, puis contrôles PBR complets (cache, intensités, matériaux, soleil, toit, OFF/zéro, redimensionnement et rechargement). Log : build/shader135-client-final.log ; marqueurs SSGI135_CLOSEUP_PASS et PBR134_PASS. Les seuils de proximité et PBR sont conservés. Le contrôle supplémentaire des nouveaux défauts et du PBR réussit en 1 min 16 s : préférences vierges, champs absents, valeurs personnelles conservées, puis rendu PBR et combinaison des effets. Log : build/shader135-defaults-client.log. ./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest réussit en 2 min 18 s, 126 tâches. Le serveur GameTest dédié demeure exclu conformément au refus EULA antérieur. Les classes des scénarios clients compilent aussi après leur isolation explicite des effets activés par défaut. Log : build/shader135-build.log ; compilation : build/shader135-test-compile.log.

Archives vérifiées

Comparaison à beta.134 : 6 entrées de production modifiées, limitées aux trois ressources SSGI, aux valeurs initiales et aux aides FR/EN. Gameplay et textures des gemmes inchangés. Packs normal/Test : JAR Sanctuary identique ; archives de sources et template conformes aux sources. Reçu local ignoré : build/shader135-artifact.json.

Limites

Le SSGI utilise seulement les surfaces visibles : les sources hors champ restent absentes et un grand changement de vue peut modifier le rebond. L'atténuation proche est volontaire ; ce n'est pas une simulation volumétrique. Le brouillard natif de submersion continue de suspendre le SSGI, comme en beta.134. Aucun résultat Windows/Vulkan ni mesure de FPS revendiqués.

  • Sanctuary-beta.135.mrpack : 10422391 octets ; SHA-256 36ac278f9f5ecd2cefd69da16ea7d153ff44c5fc8e6bf0b3a3d6b71f5d767af6.

  • Sanctuary-Test-beta.135.mrpack : 10441314 octets ; SHA-256 e096374f7ea0856b20392e5d277e94f6c3d411723d7ffc10ceccdd9f0bf5c4d4.

JAR : a68ccd04a92a962c46a76b26a80cb44a4faf7a13a562094dde51010ade594c10.

Livraison

Release beta.135 publiée depuis 7fada570efb5ed579e6e4d7bc2b87079c7131b31. Canal packwiz 5b0df577fcd036937c25be3a1f4580f9db3103a1 ; 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.135 actif ; les 923 fichiers personnels suivis, dont sauvegardes et préférences, gardent leurs hashes. Copie préalable dans sanctuary-backups/before-beta.135/, aucun monde personnel ouvert.

Packs normal/Test/template et comparateur natif également vérifiés dans sanctuary-beta/build/. Le checkout original garde ses changements préexistants. Reçus locaux ignorés : build/shader135-artifact.json, build/shader135-isolated.json, build/shader135-prism.json, build/shader135-publication.log.