42 lines
1.3 KiB
Plaintext
42 lines
1.3 KiB
Plaintext
// NOTE: Shader automatically converted from Godot Engine 4.4.stable.mono's StandardMaterial3D.
|
|
|
|
shader_type spatial;
|
|
render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_burley, specular_schlick_ggx;
|
|
|
|
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Transform.gdshaderinc"
|
|
|
|
uniform sampler2D texture_albedo : source_color, filter_linear_mipmap, repeat_enable;
|
|
|
|
uniform sampler2D texture_normal : hint_roughness_normal, filter_linear_mipmap, repeat_enable;
|
|
uniform float normal_scale : hint_range(0, 2) = 0.1;
|
|
|
|
uniform float roughness : hint_range(0, 1) = 0.2;
|
|
|
|
uniform float irisRange : hint_range(0.1, 10) = 5;
|
|
uniform float irisPower : hint_range(0.1, 10) = 5;
|
|
uniform float irisScale:hint_range(0.01,2.0) = 1;
|
|
|
|
//void vertex()
|
|
//{
|
|
//UV = scale( UV, vec2(0.5), vec2(uvScale) );
|
|
//}
|
|
|
|
void fragment()
|
|
{
|
|
vec2 base_uv = UV;
|
|
float d = ( irisRange * length( UV - vec2( 0.5, 0.5 ) ) ) / length( vec2( 0.5, 0.5 ) );
|
|
d = clamp( d, 0, 1 );
|
|
d = pow( d, irisPower );
|
|
base_uv = mix( UV, scale( UV, vec2(0.5), vec2(2.0 - irisScale) ), 1.0 - d);
|
|
|
|
vec4 albedo_tex = texture(texture_albedo, base_uv);
|
|
ALBEDO = albedo_tex.rgb;
|
|
//ALBEDO = vec3( d );
|
|
|
|
ROUGHNESS = mix( roughness, 1, d );
|
|
|
|
NORMAL_MAP = texture(texture_normal, base_uv).rgb;
|
|
//ALBEDO = normalize( vec3( UV.rg*0.5, 1) );
|
|
NORMAL_MAP_DEPTH = normal_scale;
|
|
}
|