107 lines
5.8 KiB
Markdown
107 lines
5.8 KiB
Markdown
# 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`.
|
|
|
|
|
|
## Livraison
|
|
|
|
[Release beta.133](https://git.botsu.net/koka/sanctuary-beta/releases/tag/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`.
|