Zum Hauptinhalt springen

Godot: Shadery

Vytváření vlastních shaderů

Godot používá skriptovací jazyk pro shadery, podobný GLSL ES 3.0.

Skriptování shaderu pro objekt

  1. vyber objekt (sprite) ve scéně nebo hierarchii (Scene)
  2. Inspector > Canvas Item > Material, New Shader Material
  3. Skript edituješ v otevřeném tabu

image

GODOT SHADING LANGUAGE SHADER SCRIPT
shader_type canvas_item;

//use visual shader for godot, hint_color changed in G4 to source_color
uniform vec4 flashing_color: source_color = vec4(1.0);
uniform float color_change: hint_range(0.0, 1.0) = 1;

void vertex() {
// Called for every vertex the material is visible on.
}

void fragment() {
vec4 color = texture(TEXTURE, UV);
color.rgb = mix(color.rgb, flashing_color.rgb, color_change);
COLOR = color;
}

void light() {
// Called for every pixel for every light affecting the CanvasItem.
}

Tento skript přiřazený objektu mění zabarvení spritu. Proměnné uniform umožňují ovládání v docku CanvasItem/Material/Shader Parameters v editoru.

Klíčová slova proměnných (TEXTURE, UV, atd.) a funkce (light, fragment, vertex, atd.) jsou předdefinována.

Emission Glow Shader

Drop Shadow Shader

VisualShaders

VisualShader je typ shaderu umožňující programování pomocí logických uzlů. Tento typ nastavíš při vytváření shaderu.

Shader assety a import

info

Shadery pro starší verze vyžadují opravy syntaxe. Shadery pro studium najdeš např. na Godot Shaders a Asset Library např. zde (dema) a zde

Některé shadery ke stažení vyžadují instalaci jako addon.