API
Mga shader pack
Binabago ng shader pack ang hitsura ng buong imahe: mga kulay, ilaw at mga epekto. Data ito, hindi mod: ini-install ito ng manlalaro sa pamamagitan ng pagkopya ng folder nito.
Pag-install ng pack
Kopyahin ang folder ng pack sa shaderpacks/ sa loob ng folder ng laro. Patuloy na gagana ang parehong pack kapag nag-update ang Minecraft, dahil iniaangkop ito ng Crafting sa laro.
shaderpacks/sepia/
├── shaderpack.json
├── tone.glsl
└── vignette.glslAng file ng pack
Pinapangalanan ng shaderpack.json ang pack at inilalista ang mga pass nito. Tumatakbo ang mga ito nang sunud-sunod, bawat isa sa imaheng nagawa ng nauna.
{ "name": "Sepia", "passes": ["tone.glsl", "vignette.glsl"] }Isang pass
Ang pass ay isang GLSL file na may iisang function:
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);
}Ang color ay ang kulay ng pixel at ang uv ang posisyon nito sa screen, mula (0, 0) hanggang (1, 1). Ibinabalik ng function ang bagong kulay. May tatlo pang magagamit sa bawat pass:
| Pangalan | Ano ang ibinibigay |
|---|---|
crafting_scene(uv) |
binabasa ang imahe sa anumang posisyon: blur, mga gilid, distortion |
crafting_screen |
ang laki ng screen sa mga pixel (vec2) |
crafting_time |
ang oras sa segundo: mga animation, pulso |
Higit pang halimbawa
Isang vignette na nagdidilim sa mga sulok:
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);
}Isang banayad na alon, gamit ang crafting_time at 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);
}Pagpili ng pack
Sa folder ng laro, buksan ang config/crafting/client.toml at itakda ang shader_pack sa pangalan ng folder ng pack. Ang walang laman ay nangangahulugang wala. Pagkatapos, simulan ang laro.
shader_pack = "sepia"Gumagana ang pack sa loob ng mga mundo; normal ang hitsura ng mga menu.
Kapag may error ang isang pass
Magpapakita ang laro ng babala tungkol sa resource at mananatiling normal ang imahe. Sinasabi ng log ng laro kung ano ang mali, sa anong file at linya.