2023-07-25 14:21:10 +09:30
|
|
|
[gd_resource type="Shader" format=2]
|
|
|
|
|
|
|
|
[resource]
|
|
|
|
code = "shader_type canvas_item;
|
|
|
|
//uniform usampler2D tex;
|
2023-07-25 14:49:32 +09:30
|
|
|
uniform sampler2D palette;
|
|
|
|
const float index_scale = 255.0 / 16.0;
|
2023-07-25 14:21:10 +09:30
|
|
|
|
|
|
|
void fragment() {
|
2023-07-25 14:49:32 +09:30
|
|
|
// GLES3
|
|
|
|
/*uint color_idx = uint(textureLod(TEXTURE, UV, 0.0).r * 255.0);
|
2023-07-25 14:21:10 +09:30
|
|
|
COLOR = texelFetch(palette, ivec2(int(color_idx), 0), 0);
|
|
|
|
if (color_idx == uint(0))
|
2023-07-25 14:49:32 +09:30
|
|
|
COLOR.a = 0.0;*/
|
|
|
|
// GLES2
|
|
|
|
float color_idx = texture(TEXTURE, UV).a * index_scale;
|
|
|
|
COLOR = texture(palette, vec2(color_idx, 0.5));
|
|
|
|
if (color_idx == 0.0)
|
2023-07-25 14:21:10 +09:30
|
|
|
COLOR.a = 0.0;
|
|
|
|
}
|
|
|
|
"
|