API
Pacchetti di shader
Un pacchetto di shader cambia l'aspetto di tutta l'immagine: colori, luce ed effetti. Sono dati, non una mod: il giocatore lo installa copiando la sua cartella.
Installare un pacchetto
Copia la cartella del pacchetto in shaderpacks/, nella cartella del gioco. Lo stesso pacchetto continua a funzionare quando Minecraft si aggiorna, perché Crafting lo adatta al gioco.
shaderpacks/sepia/
├── shaderpack.json
├── tone.glsl
└── vignette.glslIl file del pacchetto
shaderpack.json dà un nome al pacchetto ed elenca i suoi passaggi. Vengono eseguiti in ordine, ciascuno sull'immagine prodotta dal precedente.
{ "name": "Sepia", "passes": ["tone.glsl", "vignette.glsl"] }Un passaggio
Un passaggio è un file GLSL con una sola funzione:
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 è il colore del pixel e uv la sua posizione sullo schermo, da (0, 0) a (1, 1). La funzione restituisce il nuovo colore. In ogni passaggio sono disponibili anche altre tre cose:
| Nome | Cosa ti dà |
|---|---|
crafting_scene(uv) |
legge l'immagine in qualsiasi posizione: sfocatura, bordi, distorsione |
crafting_screen |
la dimensione dello schermo in pixel (vec2) |
crafting_time |
il tempo in secondi: animazioni, pulsazioni |
Altri esempi
Una vignettatura che scurisce gli angoli:
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);
}Un'onda leggera, con crafting_time e 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);
}Scegliere il pacchetto
Nella cartella del gioco, apri config/crafting/client.toml e imposta shader_pack sul nome della cartella del pacchetto. Vuoto significa nessuno. Poi avvia il gioco.
shader_pack = "sepia"Il pacchetto si applica dentro i mondi; i menu restano normali.
Quando un passaggio ha un errore
Il gioco mostra un avviso sulle risorse e l'immagine resta normale. Il log del gioco dice cosa non va, in quale file e a quale riga.