111 lines
6.2 KiB
Markdown
111 lines
6.2 KiB
Markdown
# beta.117 — Grain des textures et sculptures en chapeau
|
||
|
||
Ticket sur `codex/sculpture-texture-grain-beta117`, Minecraft 26.3.
|
||
|
||
En beta.116, une couleur du modèle source était associée à une seule nuance
|
||
de matière. Un modèle uni restait donc uni malgré les pixels différents de la
|
||
texture. La sélection utilise maintenant les textures des faces du modèle de
|
||
bloc, avec leurs propres teintes du pack actif. Un échantillonnage de pixels
|
||
répartit leurs couleurs exactes dans les voxels, sans couleur interpolée.
|
||
|
||
## Coût et comportement
|
||
|
||
Au maximum 32 matériaux de faces et 16 × 16 échantillons par matériau sont lus,
|
||
puis ramenés à la palette existante de 256 entrées. Les répétitions conservent
|
||
la fréquence des nuances. Les pixels transparents sont écartés ; les textures
|
||
animées utilisent la première image. Les blocs sans texture lisible gardent
|
||
le repli antérieur sur la texture représentative, puis la couleur de carte.
|
||
|
||
La sélection d'une nuance utilise un mélange entier déterministe des coordonnées
|
||
de chaque voxel. Un modèle uni utilise toute la palette ; un modèle ombré
|
||
utilise des plages de nuances qui suivent ses zones claires et sombres.
|
||
Ce grain est un transfert de palette, pas une projection UV conservant les
|
||
motifs ou les veinures du bloc. Les voxels restent opaques.
|
||
|
||
Le calcul utilise Java standard et les modèles/textures déjà chargés par
|
||
Minecraft, sans bibliothèque supplémentaire. Aucun calcul de matière dans
|
||
le rendu par image. Le client ne rééchantillonne qu'au changement de matière
|
||
ou de ressources ; une rotation réutilise la palette. Le serveur conserve
|
||
le modèle recoloré pour les fabrications suivantes avec la même sélection.
|
||
|
||
## Chapeaux et données
|
||
|
||
Le système de blocs portés retirait `BLOCK_ENTITY_DATA` des objets pour isoler
|
||
les inventaires des coffres et fourneaux. Sur une sculpture, ce composant est
|
||
la géométrie elle-même : le slot contenait encore un objet, devenu invisible.
|
||
Les sculptures conservent désormais ce composant à l'équipement et au retrait.
|
||
|
||
Si une ancienne sculpture équipée a perdu ce composant, mais que sa session
|
||
de chapeau possède encore le modèle, il est restauré depuis cette donnée
|
||
serveur. La restauration ne fabrique aucune géométrie manquante. Les objets
|
||
déjà retirés et dépourvus de toute copie du modèle ne sont pas reconstructibles
|
||
par ce correctif. Les règles de contenu des coffres restent inchangées.
|
||
|
||
Identifiants, schéma 1 des sculptures, structure des accessoires et paquet
|
||
de sélection inchangés. Les couleurs déjà sauvegardées restent intactes.
|
||
Les deux côtés utilisent beta.117 pour le même calcul de prévisualisation et
|
||
de fabrication. Aucun monde personnel ouvert ni migration de sauvegarde.
|
||
|
||
## Vérifications
|
||
|
||
Le scénario client natif complet passe en 2 min 1 s sur macOS avec serveur
|
||
intégré, monde plat jetable de graine 116. Il reprend le scénario beta.116
|
||
avec un GLB entièrement uni, plus les régressions de l'atelier 106/111/112/113 :
|
||
|
||
- 1 207 objets-blocs échantillonnés, huit fabrications payées avec aperçu
|
||
identique au résultat serveur, consommation exacte d'un bloc.
|
||
- Répartition 25 % / 75 % de deux couleurs de texture sur un modèle uni,
|
||
aucune couleur inventée, conservation des zones claires et sombres.
|
||
- Couleurs réellement présentes dans les textures natives des faces, avec
|
||
plusieurs matériaux d'une bûche ; grain présent sur pierre, bois et minerai.
|
||
- Motif indépendant de l'ordre des voxels, stable et sauvegardé ; rechargement
|
||
des ressources, palette bornée, inventaire plein et sélections périmées.
|
||
- Vrais clics des slots hotbar/chapeau, conservation exacte des composants
|
||
et du nom personnalisé, icône et modèle porté visibles, retrait/rééquipement.
|
||
- Restauration d'un objet privé de sa géométrie depuis une ancienne session
|
||
équipée, puis sauvegarde et reconnexion du client avec le chapeau intact.
|
||
- Pose, bord visé, orientation, casse/repose, reconnexion sans fichier source,
|
||
menus FR/EN et génération du plan du Métabli inchangés.
|
||
|
||
Mesure indicative après échauffement, modèle maximal de 4 096 voxels,
|
||
101 applications sur le Mac de développement : médiane **0,283 ms**, p95
|
||
**0,971 ms**. Ce n'est pas une garantie de temps sur d'autres machines ; le
|
||
calcul n'est exécuté ni chaque image ni à chaque objet fabriqué identique.
|
||
|
||
Marqueurs `SCULPTURE117_GRAIN_PASS`, `SCULPTURE117_HAT_PASS`,
|
||
`SCULPTURE117_HAT_RECONNECT_PASS`, `SCULPTURE116_PASS` dans
|
||
`build/sculpture117-final-client.log`. Captures relues dans
|
||
`build/sculpture117-evidence/`. Pas d'essai Windows ou LAN. Le GameTest dédié
|
||
reste exclu selon le refus antérieur de son EULA.
|
||
|
||
`check build assemblePack assembleTestPack -x :sanctuary:runGameTest` réussit
|
||
en **3 min 7 s**, 125 tâches dont 105 exécutées. JAR sources concordants,
|
||
versions, contenu et intégrité des deux archives vérifiés. La comparaison
|
||
avec beta.116 limite les changements de production au calcul des matières,
|
||
à son cache dans le menu et au traitement des sculptures en chapeau.
|
||
Les modèles de test et classes de GameTest sont absents de la livraison.
|
||
|
||
- `Sanctuary-beta.117.mrpack` : 10191137 octets, SHA-256
|
||
`adbe5a40bbd050ebc84ff8aca61a7a3643dcf25ec8f2ac59b91561e48275cbbb`.
|
||
- `Sanctuary-Test-beta.117.mrpack` : 10210059 octets, SHA-256
|
||
`0dacb12b30bde66c647871101a4f4c6b0b58e7ceb29f7743398f8a569b958a6e`.
|
||
- JAR Sanctuary :
|
||
`1ce63f97f17c6098f3c86c6753f9b912bce39d88e05ba240423c38bdc97307ee`.
|
||
|
||
Reçu : `build/sculpture117-artifact.json`.
|
||
|
||
## Publication et instance
|
||
|
||
La [release beta.117](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.117)
|
||
est publiée : JAR, MRpack normal/Test et amorçage Prism, téléchargements publics
|
||
et empreintes vérifiés. Le tag immuable désigne
|
||
`0f1efdec830342e25d3316b356330ad937d0d942`. Le canal packwiz avance au commit
|
||
`a5b75a70f86e42afb8e06ba4daa9880d61c6373e`.
|
||
|
||
Deux synchronisations isolées puis deux dans l'unique instance **Sanctuary
|
||
Beta** réussissent, la seconde passe laissant les fichiers gérés identiques.
|
||
Un seul JAR Sanctuary beta.117 est actif. Les 923 fichiers personnels et
|
||
réglages suivis sont inchangés ; aucun monde personnel n'a été ouvert.
|
||
Copie préalable des fichiers remplacés dans `sanctuary-backups/before-beta.117/`.
|
||
Reçus : `build/sculpture117-isolated.json`, `build/sculpture117-prism.json`.
|