diff options
Diffstat (limited to 'source/blender/gpu/shaders/material/gpu_shader_material_tex_checker.glsl')
-rw-r--r-- | source/blender/gpu/shaders/material/gpu_shader_material_tex_checker.glsl | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/source/blender/gpu/shaders/material/gpu_shader_material_tex_checker.glsl b/source/blender/gpu/shaders/material/gpu_shader_material_tex_checker.glsl new file mode 100644 index 00000000000..f534f3bddf3 --- /dev/null +++ b/source/blender/gpu/shaders/material/gpu_shader_material_tex_checker.glsl @@ -0,0 +1,17 @@ +void node_tex_checker( + vec3 co, vec4 color1, vec4 color2, float scale, out vec4 color, out float fac) +{ + vec3 p = co * scale; + + /* Prevent precision issues on unit coordinates. */ + p = (p + 0.000001) * 0.999999; + + int xi = int(abs(floor(p.x))); + int yi = int(abs(floor(p.y))); + int zi = int(abs(floor(p.z))); + + bool check = ((mod(xi, 2) == mod(yi, 2)) == bool(mod(zi, 2))); + + color = check ? color1 : color2; + fac = check ? 1.0 : 0.0; +} |