23 lines
622 B
Plaintext
23 lines
622 B
Plaintext
shader_type canvas_item;
|
|
|
|
uniform vec2 image_size;
|
|
uniform sampler2D index_color : source_color;
|
|
uniform sampler2D color_map;
|
|
uniform float silhouette;
|
|
uniform vec3 silhouette_tint : source_color = vec3(0.0);
|
|
|
|
|
|
varying vec2 local_vertex;
|
|
|
|
void vertex() {
|
|
local_vertex = VERTEX;
|
|
}
|
|
|
|
void fragment() {
|
|
vec2 world_tile_index = floor(local_vertex * image_size);
|
|
float color_coords_float = texelFetch(color_map, ivec2(world_tile_index), 0).r;
|
|
int color_coords = int(floor(color_coords_float * 256.0));
|
|
COLOR = texelFetch(index_color, ivec2(color_coords, 0), 0);
|
|
COLOR.rgb = mix(COLOR.rgb, silhouette_tint, silhouette);
|
|
}
|