finalizing lava lamp

This commit is contained in:
betalars 2023-07-05 23:17:08 +02:00
parent cbef24495c
commit 39b5cb5757
8 changed files with 151 additions and 57 deletions

View File

@ -6,4 +6,4 @@ cull_mode = 2
vertex_color_use_as_albedo = true vertex_color_use_as_albedo = true
albedo_color = Color(0.906332, 0.906332, 0.906332, 1) albedo_color = Color(0.906332, 0.906332, 0.906332, 1)
metallic = 1.0 metallic = 1.0
roughness = 0.334862 roughness = 0.4

View File

@ -0,0 +1,126 @@
[gd_scene load_steps=15 format=3 uid="uid://bigr0lnen1xdh"]
[ext_resource type="ArrayMesh" uid="uid://cbbreijekdjel" path="res://base-environments/youth_room/shaders/raising-lava.res" id="1_kkx3t"]
[ext_resource type="ArrayMesh" uid="uid://7bpgy7uud2ai" path="res://base-environments/youth_room/shaders/falling-lava.res" id="2_tokpx"]
[ext_resource type="Shader" uid="uid://bcuduhlnij5mc" path="res://base-environments/youth_room/shaders/glass.tres" id="3_e48d5"]
[ext_resource type="ArrayMesh" uid="uid://dpof211rbvl30" path="res://base-environments/youth_room/shaders/lava-glass.res" id="4_bg48h"]
[ext_resource type="Shader" path="res://base-environments/youth_room/shaders/lava-lamp.gdshader" id="4_y2lnx"]
[ext_resource type="ArrayMesh" uid="uid://bsxcltpxwi5c2" path="res://base-environments/youth_room/shaders/lava-metal.res" id="5_4c8kc"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_7uei1"]
albedo_color = Color(0.933333, 0.933333, 0.933333, 1)
metallic = 1.0
roughness = 0.4
[sub_resource type="ShaderMaterial" id="ShaderMaterial_2vmtt"]
render_priority = 0
shader = ExtResource("3_e48d5")
shader_parameter/glass_tint = Color(0.631373, 0.584314, 0.376471, 1)
shader_parameter/lightcolor = Color(1.5, 2, 0.76, 1)
[sub_resource type="Gradient" id="Gradient_r18tr"]
colors = PackedColorArray(0.705882, 6.36471, 0.211765, 1, 0.279697, 0.985193, 0.315141, 1)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_42bqf"]
gradient = SubResource("Gradient_r18tr")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_31q3g"]
render_priority = 0
shader = ExtResource("4_y2lnx")
shader_parameter/drop_size = 0.015
shader_parameter/stretch_compensatioon = 35.0
shader_parameter/fill = 0.655
shader_parameter/speed = 0.01
shader_parameter/brightness = 1.0
shader_parameter/gradient = SubResource("GradientTexture2D_42bqf")
[sub_resource type="Animation" id="Animation_0ijgr"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("../falling:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
[sub_resource type="Animation" id="Animation_ovxyq"]
resource_name = "lavalamp"
length = 60.0
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 60),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0, 6.28319, 0), Vector3(0, 0, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("../falling:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 60),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0, 6.28319, 0), Vector3(0, 0, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_88lyq"]
_data = {
"RESET": SubResource("Animation_0ijgr"),
"lavalamp": SubResource("Animation_ovxyq")
}
[node name="Lava-metal" type="MeshInstance3D"]
material_override = SubResource("StandardMaterial3D_7uei1")
mesh = ExtResource("5_4c8kc")
[node name="Lava-glass" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1.02, 0, 0, 0, 1, 0, 0.193229, 0)
material_override = SubResource("ShaderMaterial_2vmtt")
mesh = ExtResource("4_bg48h")
skeleton = NodePath("")
[node name="raising" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.188474, 0)
material_override = SubResource("ShaderMaterial_31q3g")
mesh = ExtResource("2_tokpx")
skeleton = NodePath("")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
root_node = NodePath("../raising")
autoplay = "lavalamp"
libraries = {
"": SubResource("AnimationLibrary_88lyq")
}
[node name="falling" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.188474, 0)
material_override = SubResource("ShaderMaterial_31q3g")
mesh = ExtResource("1_kkx3t")
skeleton = NodePath("")

View File

@ -0,0 +1,24 @@
shader_type spatial;
render_mode blend_mix, depth_draw_opaque, diffuse_lambert, specular_schlick_ggx, unshaded;
uniform sampler2D gradient;
uniform float drop_size;
uniform float stretch_compensatioon;
uniform float fill;
uniform float speed;
uniform float brightness;
void fragment() {
float fresnel = 1.0/(1.0-abs(NORMAL.x));
float dist = 1.0 / distance(vec2(NORMAL.x/stretch_compensatioon, UV.y), vec2(0.0, mod(-TIME*speed*UV.x, 1.0)));
dist += 1.0 / distance(vec2(NORMAL.x/stretch_compensatioon, UV.y), vec2(0.0, mod(-TIME*speed*UV.x+0.3, 1.0)));
//dist = 0.0;
dist += 1.5 / distance(vec2(NORMAL.x/stretch_compensatioon, UV.y), vec2(0.0, fill));
dist += 2.0 / distance(vec2(NORMAL.x/stretch_compensatioon, UV2.x), vec2(0.0, 1.0));
ALBEDO = texture(gradient, UV2).xyz*brightness;
ALPHA = float(int(dist > 1.0/drop_size));
}

View File

@ -1,56 +0,0 @@
[gd_resource type="VisualShader" load_steps=6 format=3 uid="uid://diua81fqg1ygg"]
[sub_resource type="VisualShaderNodeVec2Parameter" id="VisualShaderNodeVec2Parameter_2yjsa"]
parameter_name = "ball_1_origin"
[sub_resource type="VisualShaderNodeVec2Parameter" id="VisualShaderNodeVec2Parameter_2y23m"]
parameter_name = "ball_2_origin"
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_j8wbi"]
input_name = "uv"
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_u7n81"]
[sub_resource type="VisualShaderNodeCompare" id="VisualShaderNodeCompare_3v1ps"]
default_input_values = [0, 0.0, 1, 1.0, 2, 1e-05]
function = 2
[resource]
code = "shader_type spatial;
render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_lambert, specular_schlick_ggx, unshaded;
void fragment() {
// FloatOp:7
float n_in7p0 = 0.00000;
float n_in7p1 = 0.00000;
float n_out7p0 = n_in7p0 + n_in7p1;
// Compare:8
float n_in8p1 = 1.00000;
bool n_out8p0 = n_out7p0 > n_in8p1;
// Output:0
ALBEDO = vec3(n_out8p0 ? 1.0 : 0.0);
}
"
graph_offset = Vector2(-907.416, -156.666)
flags/unshaded = true
nodes/fragment/0/position = Vector2(720, 100)
nodes/fragment/2/node = SubResource("VisualShaderNodeVec2Parameter_2yjsa")
nodes/fragment/2/position = Vector2(-660, 100)
nodes/fragment/3/node = SubResource("VisualShaderNodeVec2Parameter_2y23m")
nodes/fragment/3/position = Vector2(-460, 280)
nodes/fragment/4/node = SubResource("VisualShaderNodeInput_j8wbi")
nodes/fragment/4/position = Vector2(-700, -40)
nodes/fragment/7/node = SubResource("VisualShaderNodeFloatOp_u7n81")
nodes/fragment/7/position = Vector2(180, 100)
nodes/fragment/8/node = SubResource("VisualShaderNodeCompare_3v1ps")
nodes/fragment/8/position = Vector2(400, 100)
nodes/fragment/connections = PackedInt32Array(7, 0, 8, 0, 8, 0, 0, 0)