open-strike-2/shaders/outline.gdshader
Nikolai Rodionov b214f8d278 Add a first-view controller and a bunch of things
1. Replace 4k models with low-poly once
2. Use bare mixamo for testing
3. Add a basic menu
4. Add a map with collisions and spawn areas
2025-01-20 22:33:30 +01:00

23 lines
582 B
Plaintext

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