221 lines
7.0 KiB
Plaintext
221 lines
7.0 KiB
Plaintext
[gd_resource type="VisualShader" load_steps=20 format=3 uid="uid://c66rr4lq10okt"]
|
|
|
|
[ext_resource type="Texture2D" uid="uid://0nwylr3o4b27" path="res://assets/textures/grass_rock/aerial_grass_rock_diff_1k.jpg" id="1_fvu23"]
|
|
|
|
[sub_resource type="VisualShaderNodeVec2Constant" id="VisualShaderNodeVec2Constant_0gqw2"]
|
|
constant = Vector2(0.5, 0.5)
|
|
|
|
[sub_resource type="VisualShaderNodeExpression" id="VisualShaderNodeExpression_e4ora"]
|
|
size = Vector2(468, 400)
|
|
expression = "uv_in -= pivot;
|
|
float rotation_radians = radians(rotation_degrees);
|
|
float c = cos(rotation_degrees);
|
|
float s = sin(rotation_degrees);
|
|
|
|
uv_out.x = uv_in.x * c + uv_in.y * s;
|
|
uv_out.y = uv_in.y * c - uv_in.x * s;
|
|
|
|
uv_out += pivot;"
|
|
|
|
[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_o4sga"]
|
|
texture = ExtResource("1_fvu23")
|
|
texture_type = 1
|
|
|
|
[sub_resource type="VisualShaderNodeUVFunc" id="VisualShaderNodeUVFunc_wtcp4"]
|
|
function = 1
|
|
|
|
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_vyfqc"]
|
|
input_name = "uv"
|
|
|
|
[sub_resource type="VisualShaderNodeFloatConstant" id="VisualShaderNodeFloatConstant_ygstf"]
|
|
constant = 50.0
|
|
|
|
[sub_resource type="FastNoiseLite" id="FastNoiseLite_5ogwx"]
|
|
noise_type = 2
|
|
frequency = 0.1
|
|
fractal_type = 0
|
|
cellular_return_type = 0
|
|
|
|
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_du4hg"]
|
|
noise = SubResource("FastNoiseLite_5ogwx")
|
|
|
|
[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_3u3s1"]
|
|
texture = SubResource("NoiseTexture2D_du4hg")
|
|
|
|
[sub_resource type="VisualShaderNodeRemap" id="VisualShaderNodeRemap_qfmdb"]
|
|
default_input_values = [1, 0.0, 2, 1.0, 3, 0.0, 4, 360.0]
|
|
|
|
[sub_resource type="Gradient" id="Gradient_f1ne1"]
|
|
offsets = PackedFloat32Array(0, 0.157692, 0.273077)
|
|
colors = PackedColorArray(1, 1, 1, 1, 0.444444, 0.444444, 0.444444, 1, 0, 0, 0, 1)
|
|
|
|
[sub_resource type="FastNoiseLite" id="FastNoiseLite_3uqdu"]
|
|
noise_type = 2
|
|
frequency = 0.1
|
|
fractal_type = 0
|
|
cellular_return_type = 4
|
|
|
|
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_3esh7"]
|
|
color_ramp = SubResource("Gradient_f1ne1")
|
|
noise = SubResource("FastNoiseLite_3uqdu")
|
|
|
|
[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_w50n5"]
|
|
texture = SubResource("NoiseTexture2D_3esh7")
|
|
|
|
[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_yqwyb"]
|
|
texture = ExtResource("1_fvu23")
|
|
texture_type = 1
|
|
|
|
[sub_resource type="VisualShaderNodeMix" id="VisualShaderNodeMix_7xmur"]
|
|
default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(1, 1, 1), 2, Vector3(0.5, 0.5, 0.5)]
|
|
op_type = 3
|
|
|
|
[sub_resource type="VisualShaderNodeUVFunc" id="VisualShaderNodeUVFunc_lhnbm"]
|
|
function = 1
|
|
|
|
[sub_resource type="VisualShaderNodeRemap" id="VisualShaderNodeRemap_q66io"]
|
|
default_input_values = [1, 0.0, 2, 1.0, 3, 0.8, 4, 1.2]
|
|
|
|
[resource]
|
|
code = "shader_type spatial;
|
|
render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_lambert, specular_schlick_ggx;
|
|
|
|
uniform sampler2D tex_frg_26;
|
|
uniform sampler2D tex_frg_21 : source_color;
|
|
uniform sampler2D tex_frg_29 : source_color;
|
|
uniform sampler2D tex_frg_28;
|
|
|
|
|
|
|
|
void fragment() {
|
|
// Input:24
|
|
vec2 n_out24p0 = UV;
|
|
|
|
|
|
// FloatConstant:25
|
|
float n_out25p0 = 50.000000;
|
|
|
|
|
|
// UVFunc:23
|
|
vec2 n_in23p2 = vec2(0.00000, 0.00000);
|
|
vec2 n_out23p0 = (n_out24p0 - n_in23p2) * vec2(n_out25p0) + n_in23p2;
|
|
|
|
|
|
// Texture2D:26
|
|
vec4 n_out26p0 = texture(tex_frg_26, UV);
|
|
|
|
|
|
float n_out32p0;
|
|
// Remap:32
|
|
float n_in32p1 = 0.00000;
|
|
float n_in32p2 = 1.00000;
|
|
float n_in32p3 = 0.80000;
|
|
float n_in32p4 = 1.20000;
|
|
{
|
|
float __input_range = n_in32p2 - n_in32p1;
|
|
float __output_range = n_in32p4 - n_in32p3;
|
|
n_out32p0 = n_in32p3 + __output_range * ((n_out26p0.x - n_in32p1) / __input_range);
|
|
}
|
|
|
|
|
|
// UVFunc:31
|
|
vec2 n_in31p2 = vec2(0.00000, 0.00000);
|
|
vec2 n_out31p0 = (n_out23p0 - n_in31p2) * vec2(n_out32p0) + n_in31p2;
|
|
|
|
|
|
// Vector2Constant:19
|
|
vec2 n_out19p0 = vec2(0.500000, 0.500000);
|
|
|
|
|
|
float n_out27p0;
|
|
// Remap:27
|
|
float n_in27p1 = 0.00000;
|
|
float n_in27p2 = 1.00000;
|
|
float n_in27p3 = 0.00000;
|
|
float n_in27p4 = 360.00000;
|
|
{
|
|
float __input_range = n_in27p2 - n_in27p1;
|
|
float __output_range = n_in27p4 - n_in27p3;
|
|
n_out27p0 = n_in27p3 + __output_range * ((n_out26p0.x - n_in27p1) / __input_range);
|
|
}
|
|
|
|
|
|
vec2 n_out20p0;
|
|
// Expression:20
|
|
n_out20p0 = vec2(0.0, 0.0);
|
|
{
|
|
n_out31p0 -= n_out19p0;
|
|
float rotation_radians = radians(n_out27p0);
|
|
float c = cos(n_out27p0);
|
|
float s = sin(n_out27p0);
|
|
|
|
n_out20p0.x = n_out31p0.x * c + n_out31p0.y * s;
|
|
n_out20p0.y = n_out31p0.y * c - n_out31p0.x * s;
|
|
|
|
n_out20p0 += n_out19p0;
|
|
}
|
|
|
|
|
|
// Texture2D:21
|
|
vec4 n_out21p0 = texture(tex_frg_21, n_out20p0);
|
|
|
|
|
|
// Texture2D:29
|
|
vec4 n_out29p0 = texture(tex_frg_29, n_out23p0);
|
|
|
|
|
|
// Texture2D:28
|
|
vec4 n_out28p0 = texture(tex_frg_28, UV);
|
|
|
|
|
|
// Mix:30
|
|
vec3 n_out30p0 = mix(vec3(n_out21p0.xyz), vec3(n_out29p0.xyz), vec3(n_out28p0.xyz));
|
|
|
|
|
|
// Output:0
|
|
ALBEDO = n_out30p0;
|
|
|
|
|
|
}
|
|
"
|
|
nodes/fragment/0/position = Vector2(1000, 220)
|
|
nodes/fragment/19/node = SubResource("VisualShaderNodeVec2Constant_0gqw2")
|
|
nodes/fragment/19/position = Vector2(-2120, 580)
|
|
nodes/fragment/20/node = SubResource("VisualShaderNodeExpression_e4ora")
|
|
nodes/fragment/20/position = Vector2(-1040, 420)
|
|
nodes/fragment/20/size = Vector2(468, 400)
|
|
nodes/fragment/20/input_ports = "0,3,uv_in;1,3,pivot;2,0,rotation_degrees;"
|
|
nodes/fragment/20/output_ports = "0,3,uv_out;"
|
|
nodes/fragment/20/expression = "uv_in -= pivot;
|
|
float rotation_radians = radians(rotation_degrees);
|
|
float c = cos(rotation_degrees);
|
|
float s = sin(rotation_degrees);
|
|
|
|
uv_out.x = uv_in.x * c + uv_in.y * s;
|
|
uv_out.y = uv_in.y * c - uv_in.x * s;
|
|
|
|
uv_out += pivot;"
|
|
nodes/fragment/21/node = SubResource("VisualShaderNodeTexture_o4sga")
|
|
nodes/fragment/21/position = Vector2(-60, 340)
|
|
nodes/fragment/23/node = SubResource("VisualShaderNodeUVFunc_wtcp4")
|
|
nodes/fragment/23/position = Vector2(-1680, 200)
|
|
nodes/fragment/24/node = SubResource("VisualShaderNodeInput_vyfqc")
|
|
nodes/fragment/24/position = Vector2(-2200, 360)
|
|
nodes/fragment/25/node = SubResource("VisualShaderNodeFloatConstant_ygstf")
|
|
nodes/fragment/25/position = Vector2(-2100, 460)
|
|
nodes/fragment/26/node = SubResource("VisualShaderNodeTexture_3u3s1")
|
|
nodes/fragment/26/position = Vector2(-2040, 720)
|
|
nodes/fragment/27/node = SubResource("VisualShaderNodeRemap_qfmdb")
|
|
nodes/fragment/27/position = Vector2(-1600, 940)
|
|
nodes/fragment/28/node = SubResource("VisualShaderNodeTexture_w50n5")
|
|
nodes/fragment/28/position = Vector2(-120, 960)
|
|
nodes/fragment/29/node = SubResource("VisualShaderNodeTexture_yqwyb")
|
|
nodes/fragment/29/position = Vector2(-60, 640)
|
|
nodes/fragment/30/node = SubResource("VisualShaderNodeMix_7xmur")
|
|
nodes/fragment/30/position = Vector2(280, 540)
|
|
nodes/fragment/31/node = SubResource("VisualShaderNodeUVFunc_lhnbm")
|
|
nodes/fragment/31/position = Vector2(-1360, 200)
|
|
nodes/fragment/32/node = SubResource("VisualShaderNodeRemap_q66io")
|
|
nodes/fragment/32/position = Vector2(-1680, 680)
|
|
nodes/fragment/connections = PackedInt32Array(19, 0, 20, 1, 24, 0, 23, 0, 25, 0, 23, 1, 26, 0, 27, 0, 27, 0, 20, 2, 20, 0, 21, 0, 21, 0, 30, 0, 29, 0, 30, 1, 28, 0, 30, 2, 30, 0, 0, 0, 31, 0, 20, 0, 23, 0, 31, 0, 26, 0, 32, 0, 32, 0, 31, 1, 23, 0, 29, 0)
|