batrix/shaders/cel_shader/outline.gdshader
2025-02-27 02:08:29 +10:00

19 lines
545 B
Plaintext

shader_type spatial;
render_mode cull_front, unshaded, depth_draw_never;
uniform vec4 outline_color : source_color;
uniform float outline_width = 4;
void vertex() {
vec4 clip_position =
PROJECTION_MATRIX * (MODELVIEW_MATRIX * vec4(VERTEX, 1.0));
vec3 clip_normal =
mat3(PROJECTION_MATRIX) * (mat3(MODELVIEW_MATRIX) * NORMAL);
clip_position.xy += normalize(clip_normal.xy) / VIEWPORT_SIZE *
clip_position.w * outline_width;
POSITION = clip_position;
}
void fragment() { ALBEDO = outline_color.rgb; }