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.

Texte
shaderpacks/sepia/
├── shaderpack.json
├── tone.glsl
└── vignette.glsl

Le 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.

shaderpacks/sepia/shaderpack.jsonJSON
{ "name": "Sepia", "passes": ["tone.glsl", "vignette.glsl"] }

Une passe

Une passe est un fichier GLSL avec une seule fonction :

shaderpacks/sepia/tone.glslGLSL
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 :

shaderpacks/sepia/vignette.glslGLSL
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 :

shaderpacks/sepia/wave.glslGLSL
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.

config/crafting/client.tomlTOML
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.