API
Shaderpakete
Ein Shaderpaket verändert das Aussehen des ganzen Bildes: Farben, Licht und Effekte. Es besteht aus Daten, nicht aus einer Mod: Spieler installieren es, indem sie seinen Ordner kopieren.
Ein Paket installieren
Kopiere den Ordner des Pakets nach shaderpacks/ im Spielordner. Dasselbe Paket funktioniert weiter, wenn Minecraft aktualisiert wird, denn Crafting passt es an das Spiel an.
shaderpacks/sepia/
├── shaderpack.json
├── tone.glsl
└── vignette.glslDie Paketdatei
shaderpack.json benennt das Paket und listet seine Durchgänge auf. Sie laufen der Reihe nach, jeder auf dem Bild, das der vorherige erzeugt hat.
{ "name": "Sepia", "passes": ["tone.glsl", "vignette.glsl"] }Ein Durchgang
Ein Durchgang ist eine GLSL-Datei mit einer einzigen Funktion:
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 ist die Farbe des Pixels und uv seine Position auf dem Bildschirm, von (0, 0) bis (1, 1). Die Funktion gibt die neue Farbe zurück. In jedem Durchgang stehen außerdem drei Dinge bereit:
| Name | Was du bekommst |
|---|---|
crafting_scene(uv) |
liest das Bild an einer beliebigen Position: Unschärfe, Kanten, Verzerrung |
crafting_screen |
die Bildschirmgröße in Pixeln (vec2) |
crafting_time |
die Zeit in Sekunden: Animationen, Pulse |
Weitere Beispiele
Eine Vignette, die die Ecken abdunkelt:
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);
}Eine sanfte Welle mit crafting_time und 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);
}Das Paket auswählen
Öffne im Spielordner config/crafting/client.toml und setze shader_pack auf den Ordnernamen des Pakets. Leer bedeutet keines. Starte danach das Spiel.
shader_pack = "sepia"Das Paket wirkt in Welten; Menüs sehen normal aus.
Wenn ein Durchgang einen Fehler hat
Das Spiel zeigt eine Ressourcenwarnung und das Bild bleibt normal. Das Spielprotokoll sagt, was falsch ist, in welcher Datei und Zeile.