first commit
This commit is contained in:
commit
7eebf4e2d7
8 files changed
+150
No files matched your search
@@ -0,0 +1,56 @@
|
||||
shader_type canvas_item;
|
||||
uniform int step_count = 168;
|
||||
uniform int inner = 101;
|
||||
uniform int pixel_size = 121;
|
||||
uniform int highlight = 0;
|
||||
uniform float grid_thickness = 0.125;
|
||||
uniform float offset = 0.0;
|
||||
|
||||
float mask(float inner_radius, float outer_radius, vec2 p) {
|
||||
if (inner_radius < length(p) && length(p) < outer_radius) {
|
||||
return 1.0;
|
||||
} else {
|
||||
return 0.0;
|
||||
}
|
||||
}
|
||||
|
||||
float f(vec2 uv, vec2 p) {
|
||||
|
||||
float angle = atan(p.y, p.x) / PI / 2.0 + 0.5 + offset/float(step_count);
|
||||
float color = round(angle * float(step_count)) / float(step_count);
|
||||
|
||||
|
||||
return color;
|
||||
}
|
||||
|
||||
float grid_mask(vec2 uv) {
|
||||
float x = mod(uv.x*float(pixel_size), 1.0);
|
||||
float y = mod(uv.y*float(pixel_size), 1.0);
|
||||
return step(grid_thickness, x)* step(grid_thickness, y);
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
vec2 p = UV - vec2(0.5, 0.5);
|
||||
p = round(p * float(pixel_size)) / float(pixel_size);
|
||||
|
||||
float color = f(UV, p);
|
||||
//color *= edge_mask(UV, vec2(0.002, 0.002));
|
||||
vec3 chroma = vec3(color, color, color);
|
||||
int i = int(color * float(step_count));
|
||||
if (i == highlight) {
|
||||
chroma = vec3(0.0, 1.0, 0.0);
|
||||
} else if (i % 2 == 0) {
|
||||
chroma = vec3(0.3, 0.3, 0.3);
|
||||
} else if (i % 2 == 1) {
|
||||
chroma = vec3(0.6, 0.6, 0.6);
|
||||
}
|
||||
chroma *= grid_mask(UV);
|
||||
chroma *= mask(float(inner) / float(pixel_size * 2), 0.5, p);
|
||||
COLOR = vec4(chroma, 1.0);
|
||||
|
||||
}
|
||||
|
||||
//void light() {
|
||||
// // Called for every pixel for every light affecting the CanvasItem.
|
||||
// // Uncomment to replace the default light processing function with this one.
|
||||
//}
|
||||
Reference in new issue
Block a user