34 lines
1.1 KiB
Text
34 lines
1.1 KiB
Text
|
|
shader_type spatial;
|
||
|
|
render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_burley, specular_schlick_ggx;
|
||
|
|
|
||
|
|
uniform vec4 albedo : source_color = vec4(1.0);
|
||
|
|
uniform sampler2D texture_albedo : source_color, filter_nearest_mipmap, repeat_enable;
|
||
|
|
|
||
|
|
uniform vec3 glow_color : source_color = vec3(0.2, 0.5, 1.0);
|
||
|
|
uniform float glow_strength : hint_range(0.0, 20.0) = 4.0;
|
||
|
|
uniform float pulse_speed : hint_range(0.0, 10.0) = 1.5;
|
||
|
|
uniform float pulse_amount : hint_range(0.0, 1.0) = 0.25;
|
||
|
|
|
||
|
|
uniform float roughness : hint_range(0.0, 1.0) = 1.0;
|
||
|
|
uniform float metallic : hint_range(0.0, 1.0) = 0.0;
|
||
|
|
uniform float specular : hint_range(0.0, 1.0) = 0.5;
|
||
|
|
|
||
|
|
uniform vec3 uv1_scale = vec3(1.0);
|
||
|
|
uniform vec3 uv1_offset = vec3(0.0);
|
||
|
|
|
||
|
|
void vertex() {
|
||
|
|
UV = UV * uv1_scale.xy + uv1_offset.xy;
|
||
|
|
}
|
||
|
|
|
||
|
|
void fragment() {
|
||
|
|
vec4 albedo_tex = texture(texture_albedo, UV);
|
||
|
|
ALBEDO = albedo.rgb * albedo_tex.rgb;
|
||
|
|
|
||
|
|
METALLIC = metallic;
|
||
|
|
ROUGHNESS = roughness;
|
||
|
|
SPECULAR = specular;
|
||
|
|
|
||
|
|
float pulse = 1.0 - pulse_amount + pulse_amount * sin(TIME * pulse_speed);
|
||
|
|
EMISSION = ALBEDO * glow_color * glow_strength * pulse;
|
||
|
|
}
|