fix: stabilize close-range SSGI and update shader defaults for beta.135
Build Sanctuary / build (push) Canceled after 0s
Build Sanctuary / build (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
# 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`.
|
||||
Reference in New Issue
Block a user