commit 81efd2dc05239cafb61b0176ec16c24571fef643 Author: lucastucious Date: Fri Mar 21 15:37:30 2025 +0100 Main water shader diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..f28239b --- /dev/null +++ b/.editorconfig @@ -0,0 +1,4 @@ +root = true + +[*] +charset = utf-8 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0af181c --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# Godot 4+ specific ignores +.godot/ +/android/ diff --git a/icon.svg b/icon.svg new file mode 100644 index 0000000..9d8b7fa --- /dev/null +++ b/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icon.svg.import b/icon.svg.import new file mode 100644 index 0000000..86db887 --- /dev/null +++ b/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://n50mon0eivi0" +path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.svg" +dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/mat/main.tscn b/mat/main.tscn new file mode 100644 index 0000000..ba846f8 --- /dev/null +++ b/mat/main.tscn @@ -0,0 +1,54 @@ +[gd_scene load_steps=9 format=3 uid="uid://cjjrdfywoxwgr"] + +[ext_resource type="Material" uid="uid://br11m0qg2yhid" path="res://mat/waterMat.tres" id="1_x7q1n"] +[ext_resource type="PackedScene" uid="uid://cpykugh40l23q" path="res://kaykit/medieval/building_windmill_herited.tscn" id="2_cdryl"] +[ext_resource type="PackedScene" uid="uid://j4cu75dnf3u8" path="res://kaykit/medieval/building_well_red.fbx" id="4_wio4u"] +[ext_resource type="PackedScene" uid="uid://chcjbpt2tr5k3" path="res://kaykit/medieval/building_watermill_herited.tscn" id="4_x7q1n"] + +[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_cdryl"] +sky_top_color = Color(0.308708, 0.682951, 0.784164, 1) +sky_horizon_color = Color(0.780183, 0.865994, 0.882297, 1) +ground_horizon_color = Color(0.780183, 0.865994, 0.882297, 1) + +[sub_resource type="Sky" id="Sky_h5gxe"] +sky_material = SubResource("ProceduralSkyMaterial_cdryl") + +[sub_resource type="Environment" id="Environment_x7q1n"] +background_mode = 2 +sky = SubResource("Sky_h5gxe") +tonemap_mode = 2 +glow_enabled = true + +[sub_resource type="PlaneMesh" id="PlaneMesh_h5gxe"] +material = ExtResource("1_x7q1n") +size = Vector2(50, 50) +subdivide_width = 200 +subdivide_depth = 200 + +[node name="Main" type="Node3D"] + +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] +transform = Transform3D(-0.866025, -0.474162, 0.158653, 0, 0.317305, 0.948324, -0.5, 0.821272, -0.274794, 0, 1.39043, 0) +light_specular = 0.1 +shadow_enabled = true +shadow_opacity = 0.9 + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource("Environment_x7q1n") + +[node name="Water" type="MeshInstance3D" parent="."] +mesh = SubResource("PlaneMesh_h5gxe") + +[node name="Env" type="Node3D" parent="."] + +[node name="building_windmill_red" parent="Env" instance=ExtResource("2_cdryl")] +transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0.309549, -0.0858696, -3.25239) + +[node name="building_well_red" parent="Env" instance=ExtResource("4_wio4u")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.48994, 1.19209e-07, -0.244412) + +[node name="building_watermill_red2" parent="Env" instance=ExtResource("4_x7q1n")] +transform = Transform3D(0.676092, 0, -0.736817, 0, 1, 0, 0.736817, 0, 0.676092, -4.20475, 0, -1.22925) + +[node name="OmniLight3D" type="OmniLight3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.50488, 1.99753, 0.0326443) diff --git a/mat/waterMat.tres b/mat/waterMat.tres new file mode 100644 index 0000000..ec438f8 --- /dev/null +++ b/mat/waterMat.tres @@ -0,0 +1,20 @@ +[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://br11m0qg2yhid"] + +[ext_resource type="Shader" uid="uid://dju4bgl0vd6f5" path="res://mat/watershader.tres" id="1_337u2"] + +[resource] +render_priority = 0 +shader = ExtResource("1_337u2") +shader_parameter/CellsScale = Vector2(15, 15) +shader_parameter/RippleTimeScale = Vector2(0.05, 0.08) +shader_parameter/MaxRippleHeight = 0.15 +shader_parameter/ColorParameter = Color(1.5e-05, 0.392619, 0.763696, 1) +shader_parameter/FoamScale = 0.936 +shader_parameter/FoamNoise = true +shader_parameter/RippleSpeed = 0.42 +shader_parameter/DistanceFade = 0.149 +shader_parameter/RippleNumber = 4.085 +shader_parameter/FoamMin = 50.0 +shader_parameter/Transparency = 0.75 +shader_parameter/Roughness = 0.1 +shader_parameter/Spec = 0.059 diff --git a/mat/watershader.tres b/mat/watershader.tres new file mode 100644 index 0000000..7052974 --- /dev/null +++ b/mat/watershader.tres @@ -0,0 +1,790 @@ +[gd_resource type="VisualShader" load_steps=73 format=3 uid="uid://dju4bgl0vd6f5"] + +[sub_resource type="VisualShaderNodeUVFunc" id="VisualShaderNodeUVFunc_obdjg"] +linked_parent_graph_frame = 49 + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_vh75p"] +noise_type = 2 +seed = -102 +fractal_type = 0 +cellular_distance_function = 1 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_eafem"] +resource_name = "FoamNoise1" +seamless = true +noise = SubResource("FastNoiseLite_vh75p") + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_004we"] +linked_parent_graph_frame = 49 +texture = SubResource("NoiseTexture2D_eafem") +texture_type = 1 + +[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_0o2nh"] +default_input_values = [0, Vector2(0, 0), 1, Vector2(-1, -1)] +linked_parent_graph_frame = 49 +op_type = 0 +operator = 2 + +[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_jwewd"] +default_input_values = [0, Quaternion(0, 0, 0, 0), 1, Quaternion(0, 0, 0, 0)] +linked_parent_graph_frame = 49 +op_type = 2 +operator = 2 + +[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_dt65u"] +default_input_values = [0, 0.0, 1, 1.5] +linked_parent_graph_frame = 49 +operator = 5 + +[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_274gg"] +parameter_name = "Transparency" +hint = 1 +default_value_enabled = true +default_value = 0.8 + +[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_mxgkd"] +parameter_name = "Roughness" +hint = 1 +default_value_enabled = true + +[sub_resource type="VisualShaderNodeColorParameter" id="VisualShaderNodeColorParameter_qysla"] +expanded_output_ports = [0] +parameter_name = "ColorParameter" +default_value_enabled = true +default_value = Color(1.4728e-05, 0.392619, 0.763696, 1) + +[sub_resource type="VisualShaderNodeVaryingGetter" id="VisualShaderNodeVaryingGetter_obdjg"] +linked_parent_graph_frame = 49 +varying_name = "Noise" +varying_type = 3 + +[sub_resource type="VisualShaderNodeProximityFade" id="VisualShaderNodeProximityFade_obdjg"] +linked_parent_graph_frame = 31 + +[sub_resource type="VisualShaderNodeFloatFunc" id="VisualShaderNodeFloatFunc_vh75p"] +linked_parent_graph_frame = 31 +function = 31 + +[sub_resource type="VisualShaderNodeFloatFunc" id="VisualShaderNodeFloatFunc_eafem"] +linked_parent_graph_frame = 31 +function = 0 + +[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_004we"] +linked_parent_graph_frame = 31 +input_name = "time" + +[sub_resource type="VisualShaderNodeFloatFunc" id="VisualShaderNodeFloatFunc_0o2nh"] +linked_parent_graph_frame = 31 +function = 12 + +[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_jwewd"] +linked_parent_graph_frame = 31 +operator = 2 + +[sub_resource type="VisualShaderNodeFrame" id="VisualShaderNodeFrame_dt65u"] +size = Vector2(2524, 1292) +title = "Foam" +attached_nodes = PackedInt32Array(27, 30, 24, 29, 26, 38, 23, 34, 33, 32, 35, 36, 37, 50, 53, 54, 60, 61, 58, 59, 57, 51, 52) + +[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_274gg"] +default_input_values = [0, 0.0, 1, 40.0] +linked_parent_graph_frame = 31 +operator = 5 + +[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_qysla"] +linked_parent_graph_frame = 31 +parameter_name = "FoamMin" +hint = 1 +max = 100.0 +default_value_enabled = true +default_value = 40.0 + +[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_ycrm4"] +linked_parent_graph_frame = 31 + +[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_bt44v"] +default_input_values = [0, 0.0, 1, 1.0] +linked_parent_graph_frame = 31 +operator = 2 + +[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_gokfr"] +linked_parent_graph_frame = 31 +parameter_name = "RippleNumber" +hint = 1 +min = 1.0 +max = 25.0 +default_value_enabled = true +default_value = 6.0 + +[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_5fl1t"] +linked_parent_graph_frame = 31 +parameter_name = "RippleSpeed" +hint = 1 +default_value_enabled = true +default_value = 0.5 + +[sub_resource type="VisualShaderNodeMultiplyAdd" id="VisualShaderNodeMultiplyAdd_tk76b"] +linked_parent_graph_frame = 31 + +[sub_resource type="VisualShaderNodeMix" id="VisualShaderNodeMix_y7ycs"] +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="VisualShaderNodeInput" id="VisualShaderNodeInput_6r64g"] +linked_parent_graph_frame = 49 +input_name = "uv" + +[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_5wtf6"] +default_input_values = [0, Vector2(0, 0), 1, Vector2(0, 0)] +linked_parent_graph_frame = 49 +op_type = 0 +operator = 2 + +[sub_resource type="VisualShaderNodeVaryingGetter" id="VisualShaderNodeVaryingGetter_cgaqp"] +linked_parent_graph_frame = 49 +varying_name = "Cells" +varying_type = 3 + +[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_wsoe0"] +default_input_values = [0, Quaternion(0, 0, 0, 0), 1, Quaternion(0, 0, 0, 0)] +linked_parent_graph_frame = 49 +op_type = 2 +operator = 2 + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_c8snt"] +noise_type = 2 +seed = 93 +fractal_type = 0 +cellular_distance_function = 1 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_7x758"] +resource_name = "FoamNoise3" +seamless = true +noise = SubResource("FastNoiseLite_c8snt") + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_hcimu"] +linked_parent_graph_frame = 49 +texture = SubResource("NoiseTexture2D_7x758") +texture_type = 1 + +[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_qfu83"] +default_input_values = [0, Vector2(0, 0), 1, Vector2(-1, -1)] +linked_parent_graph_frame = 49 +op_type = 0 +operator = 2 + +[sub_resource type="VisualShaderNodeUVFunc" id="VisualShaderNodeUVFunc_osjwj"] +linked_parent_graph_frame = 49 + +[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_ft6xr"] +linked_parent_graph_frame = 49 +input_name = "time" + +[sub_resource type="VisualShaderNodeFrame" id="VisualShaderNodeFrame_obdjg"] +size = Vector2(2124, 1224) +title = "Noise" +attached_nodes = PackedInt32Array(15, 17, 10, 42, 44, 45, 48, 47, 46, 8, 16, 43, 41, 22, 11, 7, 5, 62) + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_gokfr"] +noise_type = 2 +seed = 1615 +fractal_type = 0 +cellular_distance_function = 1 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_5fl1t"] +resource_name = "FoamNoise2" +seamless = true +noise = SubResource("FastNoiseLite_gokfr") + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_tk76b"] +linked_parent_graph_frame = 49 +texture = SubResource("NoiseTexture2D_5fl1t") +texture_type = 1 + +[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_obdjg"] +linked_parent_graph_frame = 31 +parameter_name = "DistanceFade" +hint = 1 +max = 5.0 +default_value_enabled = true +default_value = 0.5 + +[sub_resource type="VisualShaderNodeSwitch" id="VisualShaderNodeSwitch_vh75p"] +linked_parent_graph_frame = 31 + +[sub_resource type="VisualShaderNodeBooleanParameter" id="VisualShaderNodeBooleanParameter_eafem"] +linked_parent_graph_frame = 31 +parameter_name = "FoamNoise" +default_value_enabled = true +default_value = true + +[sub_resource type="VisualShaderNodeMix" id="VisualShaderNodeMix_004we"] +default_input_values = [0, 0.0, 1, 0.0, 2, 0.5] +linked_parent_graph_frame = 31 + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_obdjg"] +noise_type = 0 +seed = -2150 +frequency = 0.1294 +fractal_type = 0 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_0o2nh"] +resource_name = "RippleNoise" +noise = SubResource("FastNoiseLite_obdjg") + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_jwewd"] +linked_parent_graph_frame = 31 +texture = SubResource("NoiseTexture2D_0o2nh") +texture_type = 1 + +[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_vh75p"] +parameter_name = "Spec" +hint = 1 +default_value_enabled = true +default_value = 0.969 + +[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_vh75p"] +linked_parent_graph_frame = 31 +input_name = "time" + +[sub_resource type="VisualShaderNodeUVFunc" id="VisualShaderNodeUVFunc_eafem"] +linked_parent_graph_frame = 31 + +[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_004we"] +default_input_values = [0, 0.0, 1, 0.1] +linked_parent_graph_frame = 31 +operator = 2 + +[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_y7ycs"] +output_port_for_preview = 0 +default_input_values = [0, Quaternion(0, 0, 0, 0), 1, Quaternion(0, 0, 0, 0)] +op_type = 2 + +[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_0o2nh"] +default_input_values = [0, 0.0, 1, 2.0] +linked_parent_graph_frame = 31 +operator = 5 + +[sub_resource type="VisualShaderNodeVaryingGetter" id="VisualShaderNodeVaryingGetter_jwewd"] +linked_parent_graph_frame = 31 +varying_name = "Noise" +varying_type = 3 + +[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_eafem"] +linked_parent_graph_frame = 49 +parameter_name = "FoamScale" +hint = 1 +max = 5.0 +default_value_enabled = true +default_value = 2.0 + +[sub_resource type="VisualShaderNodeUVFunc" id="VisualShaderNodeUVFunc_6r64g"] +linked_parent_graph_frame = 49 + +[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_5wtf6"] +linked_parent_graph_frame = 49 +input_name = "time" + +[sub_resource type="VisualShaderNodeVec2Parameter" id="VisualShaderNodeVec2Parameter_vh75p"] +parameter_name = "RippleTimeScale" +default_value_enabled = true +default_value = Vector2(0.05, 0.08) + +[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_eafem"] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(0.2, 0.2, 0.2)] +operator = 2 + +[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_004we"] +parameter_name = "MaxRippleHeight" +hint = 1 +default_value_enabled = true +default_value = 0.5 + +[sub_resource type="VisualShaderNodeVec2Parameter" id="VisualShaderNodeVec2Parameter_odxaq"] +parameter_name = "CellsScale" +default_value_enabled = true +default_value = Vector2(0.5, 0.5) + +[sub_resource type="VisualShaderNodeVaryingSetter" id="VisualShaderNodeVaryingSetter_ty10k"] +varying_name = "Cells" +varying_type = 3 + +[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_cgfff"] +input_name = "uv" + +[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_savut"] +default_input_values = [0, Vector2(0, 0), 1, Vector2(0, 0)] +op_type = 0 +operator = 2 + +[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_obdjg"] +input_name = "time" + +[sub_resource type="VisualShaderNodeUVFunc" id="VisualShaderNodeUVFunc_vh75p"] +default_input_values = [1, Vector2(0.1, 0.1), 2, Vector2(0, 0)] + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_dt65u"] +resource_name = "FoamNoise2" +seamless = true +noise = SubResource("FastNoiseLite_gokfr") + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_0o2nh"] +texture = SubResource("NoiseTexture2D_dt65u") + +[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_0o2nh"] +input_name = "vertex" + +[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_jwewd"] +input_name = "normal" + +[sub_resource type="VisualShaderNodeMultiplyAdd" id="VisualShaderNodeMultiplyAdd_dt65u"] +output_port_for_preview = 0 +default_input_values = [0, Vector4(0, 0, 0, 0), 1, Vector4(1, 1, 1, 1), 2, Vector4(0, 0, 0, 0)] +op_type = 3 + +[sub_resource type="VisualShaderNodeVaryingSetter" id="VisualShaderNodeVaryingSetter_274gg"] +varying_name = "Noise" +varying_type = 3 + +[resource] +code = "shader_type spatial; +render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_toon, specular_toon; + + +// Varyings +varying vec2 var_Noise; +varying vec2 var_Cells; + +uniform vec2 CellsScale = vec2(0.500000, 0.500000); +uniform vec2 RippleTimeScale = vec2(0.050000, 0.080000); +uniform sampler2D tex_vtx_4; +uniform float MaxRippleHeight : hint_range(0.0, 1.0) = 0.5; +uniform vec4 ColorParameter : source_color = vec4(0.000015, 0.392619, 0.763696, 1.000000); +uniform sampler2D tex_frg_11 : source_color; +uniform sampler2D tex_frg_5 : source_color; +uniform sampler2D tex_frg_45 : source_color; +uniform float FoamScale : hint_range(0.0, 5.0) = 2.0; +uniform bool FoamNoise = true; +uniform float RippleSpeed : hint_range(0.0, 1.0) = 0.5; +uniform float DistanceFade : hint_range(0.0, 5.0) = 0.5; +uniform sampler2D depth_tex_frg_23 : hint_depth_texture; +uniform float RippleNumber : hint_range(1.0, 25.0) = 6.0; +uniform sampler2D tex_frg_54 : source_color; +uniform float FoamMin : hint_range(0.0, 100.0) = 40.0; +uniform float Transparency : hint_range(0.0, 1.0) = 0.80000001192093; +uniform float Roughness : hint_range(0.0, 1.0) = 0.0; +uniform float Spec : hint_range(0.0, 1.0) = 0.96899998188019; + + + +void vertex() { +// Input:15 + vec2 n_out15p0 = UV; + + +// Vector2Parameter:13 + vec2 n_out13p0 = CellsScale; + + +// VectorOp:16 + vec2 n_out16p0 = n_out15p0 * n_out13p0; + + +// Vector2Parameter:10 + vec2 n_out10p0 = RippleTimeScale; + + +// Input:2 + float n_out2p0 = TIME; + + +// UVFunc:3 + vec2 n_out3p0 = vec2(n_out2p0) * n_out10p0 + n_out16p0; + + +// Texture2D:4 + vec4 n_out4p0 = texture(tex_vtx_4, n_out3p0); + + +// Input:6 + vec3 n_out6p0 = NORMAL; + + +// FloatParameter:12 + float n_out12p0 = MaxRippleHeight; + + +// VectorOp:11 + vec3 n_out11p0 = n_out6p0 * vec3(n_out12p0); + + +// Input:5 + vec3 n_out5p0 = VERTEX; + + +// MultiplyAdd:7 + vec4 n_out7p0 = fma(n_out4p0, vec4(n_out11p0, 0.0), vec4(n_out5p0, 0.0)); + + +// Output:0 + VERTEX = vec3(n_out7p0.xyz); + + +// VaryingSetter:8 + var_Noise = n_out10p0; + + +// VaryingSetter:14 + var_Cells = n_out13p0; + + +} + +void fragment() { +// ColorParameter:2 + vec4 n_out2p0 = ColorParameter; + + +// Input:41 + vec2 n_out41p0 = UV; + + +// VaryingGetter:43 + vec2 n_out43p0 = var_Cells; + + +// VectorOp:42 + vec2 n_out42p0 = n_out41p0 * n_out43p0; + + +// VaryingGetter:22 + vec2 n_out22p0 = var_Noise; + + +// VectorOp:15 + vec2 n_in15p1 = vec2(-1.00000, -1.00000); + vec2 n_out15p0 = n_out22p0 * n_in15p1; + + +// Input:8 + float n_out8p0 = TIME; + + +// UVFunc:10 + vec2 n_out10p0 = vec2(n_out8p0) * n_out15p0 + n_out42p0; + + +// Texture2D:11 + vec4 n_out11p0 = texture(tex_frg_11, n_out10p0); + + +// UVFunc:7 + vec2 n_out7p0 = vec2(n_out8p0) * n_out22p0 + n_out42p0; + + +// Texture2D:5 + vec4 n_out5p0 = texture(tex_frg_5, n_out7p0); + + +// VectorOp:16 + vec4 n_out16p0 = n_out11p0 * n_out5p0; + + +// VectorOp:46 + vec2 n_in46p0 = vec2(0.00000, 0.00000); + vec2 n_in46p1 = vec2(-1.00000, -1.00000); + vec2 n_out46p0 = n_in46p0 * n_in46p1; + + +// Input:48 + float n_out48p0 = TIME; + + +// UVFunc:47 + vec2 n_out47p0 = vec2(n_out48p0) * n_out46p0 + UV; + + +// Texture2D:45 + vec4 n_out45p0 = texture(tex_frg_45, n_out47p0); + + +// VectorOp:44 + vec4 n_out44p0 = n_out16p0 * n_out45p0; + + +// FloatParameter:62 + float n_out62p0 = FoamScale; + + +// FloatOp:17 + float n_out17p0 = pow(n_out44p0.x, n_out62p0); + + +// VectorOp:6 + vec4 n_out6p0 = n_out2p0 + vec4(n_out17p0); + + +// BooleanParameter:52 + bool n_out52p0 = FoamNoise; + + +// Input:27 + float n_out27p0 = TIME; + + +// FloatParameter:37 + float n_out37p0 = RippleSpeed; + + +// FloatParameter:50 + float n_out50p0 = DistanceFade; + + + float n_out23p0; +// ProximityFade:23 + { + float __depth_tex = texture(depth_tex_frg_23, SCREEN_UV).r; + vec4 __depth_world_pos = INV_PROJECTION_MATRIX * vec4(SCREEN_UV * 2.0 - 1.0, __depth_tex, 1.0); + __depth_world_pos.xyz /= __depth_world_pos.w; + n_out23p0 = clamp(1.0 - smoothstep(__depth_world_pos.z + n_out50p0, __depth_world_pos.z, VERTEX.z), 0.0, 1.0); + } + + +// FloatFunc:24 + float n_out24p0 = 1.0 - n_out23p0; + + +// MultiplyAdd:38 + float n_out38p0 = fma(n_out27p0, n_out37p0, n_out24p0); + + +// FloatParameter:36 + float n_out36p0 = RippleNumber; + + +// FloatOp:35 + float n_out35p0 = n_out38p0 * n_out36p0; + + +// FloatFunc:26 + float n_out26p0 = sin(n_out35p0); + + +// FloatFunc:29 + float n_out29p0 = abs(n_out26p0); + + +// FloatOp:30 + float n_out30p0 = n_out29p0 * n_out24p0; + + +// VaryingGetter:61 + vec2 n_out61p0 = var_Noise; + + +// Input:57 + float n_out57p0 = TIME; + + +// FloatOp:59 + float n_in59p1 = 0.10000; + float n_out59p0 = n_out57p0 * n_in59p1; + + +// UVFunc:58 + vec2 n_out58p0 = vec2(n_out59p0) * n_out61p0 + UV; + + +// Texture2D:54 + vec4 n_out54p0 = texture(tex_frg_54, n_out58p0); + + +// FloatOp:60 + float n_in60p1 = 2.00000; + float n_out60p0 = pow(n_out54p0.x, n_in60p1); + + +// Mix:53 + float n_in53p0 = 0.00000; + float n_out53p0 = mix(n_in53p0, n_out30p0, n_out60p0); + + + float n_out51p0; +// Switch:51 + n_out51p0 = mix(n_out30p0, n_out53p0, float(n_out52p0)); + + +// FloatParameter:33 + float n_out33p0 = FoamMin; + + +// FloatOp:32 + float n_out32p0 = pow(n_out24p0, n_out33p0); + + +// FloatOp:34 + float n_out34p0 = n_out51p0 + n_out32p0; + + +// Mix:39 + vec3 n_in39p1 = vec3(1.00000, 1.00000, 1.00000); + vec3 n_out39p0 = mix(vec3(n_out6p0.xyz), n_in39p1, vec3(n_out34p0)); + + +// FloatParameter:18 + float n_out18p0 = Transparency; + + +// FloatParameter:19 + float n_out19p0 = Roughness; + + +// FloatParameter:55 + float n_out55p0 = Spec; + + +// Output:0 + ALBEDO = n_out39p0; + ALPHA = n_out18p0; + ROUGHNESS = n_out19p0; + SPECULAR = n_out55p0; + EMISSION = vec3(n_out6p0.xyz); + + +} +" +graph_offset = Vector2(91.628, 272.02) +modes/diffuse = 3 +modes/specular = 1 +varyings/Noise = "0,3" +varyings/Cells = "0,3" +nodes/vertex/0/position = Vector2(1080, 320) +nodes/vertex/2/node = SubResource("VisualShaderNodeInput_obdjg") +nodes/vertex/2/position = Vector2(-480, 260) +nodes/vertex/3/node = SubResource("VisualShaderNodeUVFunc_vh75p") +nodes/vertex/3/position = Vector2(-160, 200) +nodes/vertex/4/node = SubResource("VisualShaderNodeTexture_0o2nh") +nodes/vertex/4/position = Vector2(160, 220) +nodes/vertex/5/node = SubResource("VisualShaderNodeInput_0o2nh") +nodes/vertex/5/position = Vector2(240, 760) +nodes/vertex/6/node = SubResource("VisualShaderNodeInput_jwewd") +nodes/vertex/6/position = Vector2(20, 540) +nodes/vertex/7/node = SubResource("VisualShaderNodeMultiplyAdd_dt65u") +nodes/vertex/7/position = Vector2(840, 300) +nodes/vertex/8/node = SubResource("VisualShaderNodeVaryingSetter_274gg") +nodes/vertex/8/position = Vector2(-460, 540) +nodes/vertex/10/node = SubResource("VisualShaderNodeVec2Parameter_vh75p") +nodes/vertex/10/position = Vector2(-840, 280) +nodes/vertex/11/node = SubResource("VisualShaderNodeVectorOp_eafem") +nodes/vertex/11/position = Vector2(400, 480) +nodes/vertex/12/node = SubResource("VisualShaderNodeFloatParameter_004we") +nodes/vertex/12/position = Vector2(-100, 660) +nodes/vertex/13/node = SubResource("VisualShaderNodeVec2Parameter_odxaq") +nodes/vertex/13/position = Vector2(-780, 740) +nodes/vertex/14/node = SubResource("VisualShaderNodeVaryingSetter_ty10k") +nodes/vertex/14/position = Vector2(-390.622, 1049.07) +nodes/vertex/15/node = SubResource("VisualShaderNodeInput_cgfff") +nodes/vertex/15/position = Vector2(-940, 640) +nodes/vertex/16/node = SubResource("VisualShaderNodeVectorOp_savut") +nodes/vertex/16/position = Vector2(-417.362, 747.461) +nodes/vertex/connections = PackedInt32Array(2, 0, 3, 2, 3, 0, 4, 0, 5, 0, 7, 2, 4, 0, 7, 0, 10, 0, 8, 0, 10, 0, 3, 1, 7, 0, 0, 0, 6, 0, 11, 0, 11, 0, 7, 1, 12, 0, 11, 1, 13, 0, 14, 0, 15, 0, 16, 0, 13, 0, 16, 1, 16, 0, 3, 0) +nodes/fragment/0/position = Vector2(1780, 1540) +nodes/fragment/2/node = SubResource("VisualShaderNodeColorParameter_qysla") +nodes/fragment/2/position = Vector2(240, 920) +nodes/fragment/5/node = SubResource("VisualShaderNodeTexture_tk76b") +nodes/fragment/5/position = Vector2(-480, 1720) +nodes/fragment/6/node = SubResource("VisualShaderNodeVectorOp_y7ycs") +nodes/fragment/6/position = Vector2(640, 980) +nodes/fragment/7/node = SubResource("VisualShaderNodeUVFunc_6r64g") +nodes/fragment/7/position = Vector2(-860, 1840) +nodes/fragment/8/node = SubResource("VisualShaderNodeInput_5wtf6") +nodes/fragment/8/position = Vector2(-1160, 1720) +nodes/fragment/10/node = SubResource("VisualShaderNodeUVFunc_obdjg") +nodes/fragment/10/position = Vector2(-840, 1460) +nodes/fragment/11/node = SubResource("VisualShaderNodeTexture_004we") +nodes/fragment/11/position = Vector2(-480, 1360) +nodes/fragment/15/node = SubResource("VisualShaderNodeVectorOp_0o2nh") +nodes/fragment/15/position = Vector2(-1060, 1460) +nodes/fragment/16/node = SubResource("VisualShaderNodeVectorOp_jwewd") +nodes/fragment/16/position = Vector2(-240, 1520) +nodes/fragment/17/node = SubResource("VisualShaderNodeFloatOp_dt65u") +nodes/fragment/17/position = Vector2(280, 1520) +nodes/fragment/18/node = SubResource("VisualShaderNodeFloatParameter_274gg") +nodes/fragment/18/position = Vector2(820, 1600) +nodes/fragment/19/node = SubResource("VisualShaderNodeFloatParameter_mxgkd") +nodes/fragment/19/position = Vector2(800, 1920) +nodes/fragment/22/node = SubResource("VisualShaderNodeVaryingGetter_obdjg") +nodes/fragment/22/position = Vector2(-1600, 1740) +nodes/fragment/23/node = SubResource("VisualShaderNodeProximityFade_obdjg") +nodes/fragment/23/position = Vector2(-620, 60) +nodes/fragment/24/node = SubResource("VisualShaderNodeFloatFunc_vh75p") +nodes/fragment/24/position = Vector2(-400, 60) +nodes/fragment/26/node = SubResource("VisualShaderNodeFloatFunc_eafem") +nodes/fragment/26/position = Vector2(380, -40) +nodes/fragment/27/node = SubResource("VisualShaderNodeInput_004we") +nodes/fragment/27/position = Vector2(-680, -80) +nodes/fragment/29/node = SubResource("VisualShaderNodeFloatFunc_0o2nh") +nodes/fragment/29/position = Vector2(560, -40) +nodes/fragment/30/node = SubResource("VisualShaderNodeFloatOp_jwewd") +nodes/fragment/30/position = Vector2(780, 20) +nodes/fragment/31/node = SubResource("VisualShaderNodeFrame_dt65u") +nodes/fragment/31/position = Vector2(-1000, -440) +nodes/fragment/32/node = SubResource("VisualShaderNodeFloatOp_274gg") +nodes/fragment/32/position = Vector2(420, 180) +nodes/fragment/33/node = SubResource("VisualShaderNodeFloatParameter_qysla") +nodes/fragment/33/position = Vector2(-160, 260) +nodes/fragment/34/node = SubResource("VisualShaderNodeFloatOp_ycrm4") +nodes/fragment/34/position = Vector2(1320, 340) +nodes/fragment/35/node = SubResource("VisualShaderNodeFloatOp_bt44v") +nodes/fragment/35/position = Vector2(200, -80) +nodes/fragment/36/node = SubResource("VisualShaderNodeFloatParameter_gokfr") +nodes/fragment/36/position = Vector2(-500, 180) +nodes/fragment/37/node = SubResource("VisualShaderNodeFloatParameter_5fl1t") +nodes/fragment/37/position = Vector2(-620, -400) +nodes/fragment/38/node = SubResource("VisualShaderNodeMultiplyAdd_tk76b") +nodes/fragment/38/position = Vector2(-80, -100) +nodes/fragment/39/node = SubResource("VisualShaderNodeMix_y7ycs") +nodes/fragment/39/position = Vector2(1540, 1020) +nodes/fragment/41/node = SubResource("VisualShaderNodeInput_6r64g") +nodes/fragment/41/position = Vector2(-1520, 2040) +nodes/fragment/42/node = SubResource("VisualShaderNodeVectorOp_5wtf6") +nodes/fragment/42/position = Vector2(-1180, 2040) +nodes/fragment/43/node = SubResource("VisualShaderNodeVaryingGetter_cgaqp") +nodes/fragment/43/position = Vector2(-1440, 2160) +nodes/fragment/44/node = SubResource("VisualShaderNodeVectorOp_wsoe0") +nodes/fragment/44/position = Vector2(-80, 1700) +nodes/fragment/45/node = SubResource("VisualShaderNodeTexture_hcimu") +nodes/fragment/45/position = Vector2(-360, 2060) +nodes/fragment/46/node = SubResource("VisualShaderNodeVectorOp_qfu83") +nodes/fragment/46/position = Vector2(-940, 2160) +nodes/fragment/47/node = SubResource("VisualShaderNodeUVFunc_osjwj") +nodes/fragment/47/position = Vector2(-720, 2160) +nodes/fragment/48/node = SubResource("VisualShaderNodeInput_ft6xr") +nodes/fragment/48/position = Vector2(-1040, 2420) +nodes/fragment/49/node = SubResource("VisualShaderNodeFrame_obdjg") +nodes/fragment/49/position = Vector2(-1640, 1319) +nodes/fragment/50/node = SubResource("VisualShaderNodeFloatParameter_obdjg") +nodes/fragment/50/position = Vector2(-960, 80) +nodes/fragment/51/node = SubResource("VisualShaderNodeSwitch_vh75p") +nodes/fragment/51/position = Vector2(1300, -280) +nodes/fragment/52/node = SubResource("VisualShaderNodeBooleanParameter_eafem") +nodes/fragment/52/position = Vector2(940, -240) +nodes/fragment/53/node = SubResource("VisualShaderNodeMix_004we") +nodes/fragment/53/position = Vector2(1040, 20) +nodes/fragment/54/node = SubResource("VisualShaderNodeTexture_jwewd") +nodes/fragment/54/position = Vector2(720, 440) +nodes/fragment/55/node = SubResource("VisualShaderNodeFloatParameter_vh75p") +nodes/fragment/55/position = Vector2(1300, 1920) +nodes/fragment/57/node = SubResource("VisualShaderNodeInput_vh75p") +nodes/fragment/57/position = Vector2(0, 640) +nodes/fragment/58/node = SubResource("VisualShaderNodeUVFunc_eafem") +nodes/fragment/58/position = Vector2(480, 560) +nodes/fragment/59/node = SubResource("VisualShaderNodeFloatOp_004we") +nodes/fragment/59/position = Vector2(280, 660) +nodes/fragment/60/node = SubResource("VisualShaderNodeFloatOp_0o2nh") +nodes/fragment/60/position = Vector2(940, 540) +nodes/fragment/61/node = SubResource("VisualShaderNodeVaryingGetter_jwewd") +nodes/fragment/61/position = Vector2(280, 560) +nodes/fragment/62/node = SubResource("VisualShaderNodeFloatParameter_eafem") +nodes/fragment/62/position = Vector2(-40, 1380) +nodes/fragment/connections = PackedInt32Array(2, 0, 6, 0, 7, 0, 5, 0, 8, 0, 7, 2, 10, 0, 11, 0, 15, 0, 10, 1, 8, 0, 10, 2, 11, 0, 16, 0, 5, 0, 16, 1, 17, 0, 6, 1, 18, 0, 0, 1, 19, 0, 0, 3, 22, 0, 15, 0, 22, 0, 7, 1, 23, 0, 24, 0, 26, 0, 29, 0, 29, 0, 30, 0, 24, 0, 30, 1, 24, 0, 32, 0, 33, 0, 32, 1, 32, 0, 34, 1, 35, 0, 26, 0, 36, 0, 35, 1, 27, 0, 38, 0, 24, 0, 38, 2, 37, 0, 38, 1, 38, 0, 35, 0, 6, 0, 39, 0, 41, 0, 42, 0, 42, 0, 7, 0, 43, 0, 42, 1, 16, 0, 44, 0, 44, 0, 17, 0, 47, 0, 45, 0, 46, 0, 47, 1, 48, 0, 47, 2, 45, 0, 44, 1, 42, 0, 10, 0, 50, 0, 23, 0, 52, 0, 51, 0, 55, 0, 0, 4, 58, 0, 54, 0, 57, 0, 59, 0, 59, 0, 58, 2, 54, 0, 60, 0, 60, 0, 53, 2, 61, 0, 58, 1, 39, 0, 0, 0, 6, 0, 0, 5, 30, 0, 53, 1, 34, 0, 39, 2, 53, 0, 51, 1, 30, 0, 51, 2, 51, 0, 34, 0, 62, 0, 17, 1) diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..5568177 --- /dev/null +++ b/project.godot @@ -0,0 +1,25 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="SpilledClone" +run/main_scene="uid://cjjrdfywoxwgr" +config/features=PackedStringArray("4.4", "Forward Plus") +boot_splash/bg_color=Color(0, 0, 0, 1) +config/icon="res://icon.svg" + +[display] + +window/size/viewport_width=576 +window/size/viewport_height=324 +window/stretch/mode="viewport" +window/per_pixel_transparency/allowed=true +window/vsync/vsync_mode=0