API
Packs de shaders
Un pack de shaders change l'aspect de toute l'image : couleurs, lumière et effets. Ce sont des données, pas un mod : le joueur l'installe en copiant son dossier.
Installer un pack
Copie le dossier du pack dans shaderpacks/, dans le dossier du jeu. Le même pack continue de fonctionner quand Minecraft se met à jour, car Crafting l'adapte au jeu.
shaderpacks/sepia/
├── shaderpack.json
├── tone.glsl
└── vignette.glslLe fichier du pack
shaderpack.json donne son nom au pack et liste ses passes. Elles s'exécutent dans l'ordre, chacune sur l'image produite par la précédente.
{ "name": "Sepia", "passes": ["tone.glsl", "vignette.glsl"] }Une passe
Une passe est un fichier GLSL avec une seule fonction :
vec4 effect(vec4 color, vec2 uv) {
float grey = dot(color.rgb, vec3(0.299, 0.587, 0.114));
return vec4(grey * 1.07, grey * 0.74, grey * 0.43, 1.0);
}color est la couleur du pixel et uv sa position à l'écran, de (0, 0) à (1, 1). La fonction renvoie la nouvelle couleur. Trois autres éléments sont disponibles dans chaque passe :
| Nom | Ce que ça te donne |
|---|---|
crafting_scene(uv) |
lit l'image à n'importe quelle position : flou, contours, distorsion |
crafting_screen |
la taille de l'écran en pixels (vec2) |
crafting_time |
le temps en secondes : animations, pulsations |
Plus d'exemples
Une vignette qui assombrit les coins :
vec4 effect(vec4 color, vec2 uv) {
vec2 d = uv - 0.5;
d.x *= crafting_screen.x / crafting_screen.y;
float v = smoothstep(0.85, 0.25, length(d));
return vec4(color.rgb * v, 1.0);
}Une onde douce, avec crafting_time et crafting_scene :
vec4 effect(vec4 color, vec2 uv) {
vec2 shift = vec2(sin(uv.y * 30.0 + crafting_time * 2.0) * 0.002, 0.0);
return crafting_scene(uv + shift);
}Choisir le pack
Dans le dossier du jeu, ouvre config/crafting/client.toml et mets dans shader_pack le nom du dossier du pack. Vide signifie aucun. Lance ensuite le jeu.
shader_pack = "sepia"Le pack s'applique dans les mondes ; les menus restent normaux.
Quand une passe a une erreur
Le jeu affiche un avertissement de ressources et l'image reste normale. Le journal du jeu indique ce qui ne va pas, dans quel fichier et à quelle ligne.