A game where you get to play as a slime, made with Godot.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

24 lines
939 B

shader_type spatial;
render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_burley, specular_schlick_ggx;
uniform sampler2DArray textures : source_color, filter_linear_mipmap, repeat_enable;
uniform sampler2DArray blend_textures : source_color, filter_nearest_mipmap, repeat_enable;
void fragment() {
int num_textures = textureSize(textures, 0).z;
int num_blend_textures = textureSize(blend_textures, 0).z;
float tex_primary_index = COLOR.r * float(num_textures);
float tex_secondary_index = COLOR.g * float(num_textures);
float tex_blend_index = COLOR.b * float(num_blend_textures);
vec4 tex_primary = texture(textures, vec3(UV, tex_primary_index));
vec4 tex_secondary = texture(textures, vec3(UV, tex_secondary_index));
vec4 blend = texture(blend_textures, vec3(UV, tex_blend_index));
ALBEDO = mix(tex_secondary, tex_primary, blend.a).rgb;
METALLIC = 0.0;
SPECULAR = 0.5;
ROUGHNESS = 1.0;
}