creating lavalamp wobble shader
This commit is contained in:
parent
130230e2d3
commit
99c19807f2
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,55 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://igrbso3lobka"
|
||||||
|
path="res://.godot/imported/lava-lamp.glb-30e055f82546d82b1a4b6e6043031488.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://base-environments/youth_room/import/lava-lamp.glb"
|
||||||
|
dest_files=["res://.godot/imported/lava-lamp.glb-30e055f82546d82b1a4b6e6043031488.scn"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
nodes/root_type="Node3D"
|
||||||
|
nodes/root_name="Scene Root"
|
||||||
|
nodes/apply_root_scale=true
|
||||||
|
nodes/root_scale=1.0
|
||||||
|
meshes/ensure_tangents=true
|
||||||
|
meshes/generate_lods=true
|
||||||
|
meshes/create_shadow_meshes=true
|
||||||
|
meshes/light_baking=1
|
||||||
|
meshes/lightmap_texel_size=0.2
|
||||||
|
skins/use_named_skins=true
|
||||||
|
animation/import=true
|
||||||
|
animation/fps=30
|
||||||
|
animation/trimming=false
|
||||||
|
animation/remove_immutable_tracks=true
|
||||||
|
import_script/path=""
|
||||||
|
_subresources={
|
||||||
|
"meshes": {
|
||||||
|
"lava-lamp_Mesh": {
|
||||||
|
"generate/lightmap_uv": 0,
|
||||||
|
"generate/lods": 0,
|
||||||
|
"generate/shadow_meshes": 0,
|
||||||
|
"lods/normal_merge_angle": 60.0,
|
||||||
|
"lods/normal_split_angle": 25.0,
|
||||||
|
"save_to_file/enabled": true,
|
||||||
|
"save_to_file/make_streamable": "",
|
||||||
|
"save_to_file/path": "res://base-environments/youth_room/shaders/raising-lava.res"
|
||||||
|
},
|
||||||
|
"lava-lamp_Mesh2": {
|
||||||
|
"generate/lightmap_uv": 0,
|
||||||
|
"generate/lods": 0,
|
||||||
|
"generate/shadow_meshes": 0,
|
||||||
|
"lods/normal_merge_angle": 60.0,
|
||||||
|
"lods/normal_split_angle": 25.0,
|
||||||
|
"save_to_file/enabled": true,
|
||||||
|
"save_to_file/make_streamable": "",
|
||||||
|
"save_to_file/path": "res://base-environments/youth_room/shaders/falling-lava.res"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
gltf/embedded_image_handling=1
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,56 @@
|
||||||
|
[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)
|
||||||
Binary file not shown.
|
|
@ -1,5 +1,212 @@
|
||||||
[gd_scene format=3 uid="uid://bigr0lnen1xdh"]
|
[gd_scene load_steps=16 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"]
|
||||||
|
|
||||||
|
[sub_resource type="QuadMesh" id="QuadMesh_sj0jk"]
|
||||||
|
|
||||||
|
[sub_resource type="Shader" id="Shader_kfdmq"]
|
||||||
|
code = "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;
|
||||||
|
|
||||||
|
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.2, 1.0)));
|
||||||
|
dist += 1.0 / distance(vec2(NORMAL.x/stretch_compensatioon, UV.y), vec2(0.0, mod(-TIME*speed*UV.x+0.6, 1.0)));
|
||||||
|
//dist = 0.0;
|
||||||
|
dist += 1.3 / distance(vec2(NORMAL.x/stretch_compensatioon, UV.y), vec2(0.0, fill));
|
||||||
|
|
||||||
|
ALBEDO = texture(gradient, UV2).xyz;
|
||||||
|
ALPHA = float(int(dist > 1.0/drop_size))+0.2;
|
||||||
|
|
||||||
|
}
|
||||||
|
"
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_r18tr"]
|
||||||
|
colors = PackedColorArray(0.929412, 5.69804, 0.211765, 1, 0.0901961, 1, 0, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture2D" id="GradientTexture2D_42bqf"]
|
||||||
|
gradient = SubResource("Gradient_r18tr")
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_31q3g"]
|
||||||
|
render_priority = 0
|
||||||
|
shader = SubResource("Shader_kfdmq")
|
||||||
|
shader_parameter/drop_size = 0.015
|
||||||
|
shader_parameter/stretch_compensatioon = 35.0
|
||||||
|
shader_parameter/fill = 0.663
|
||||||
|
shader_parameter/speed = 0.01
|
||||||
|
shader_parameter/gradient = SubResource("GradientTexture2D_42bqf")
|
||||||
|
|
||||||
|
[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="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="AnimationLibrary" id="AnimationLibrary_88lyq"]
|
||||||
|
_data = {
|
||||||
|
"RESET": SubResource("Animation_0ijgr"),
|
||||||
|
"lavalamp": SubResource("Animation_ovxyq")
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_3yn7w"]
|
||||||
|
sky_top_color = Color(0, 0, 1, 1)
|
||||||
|
sky_horizon_color = Color(0.858824, 0.541176, 0.4, 1)
|
||||||
|
sky_curve = 0.54075
|
||||||
|
|
||||||
|
[sub_resource type="Sky" id="Sky_lumfb"]
|
||||||
|
sky_material = SubResource("ProceduralSkyMaterial_3yn7w")
|
||||||
|
|
||||||
|
[sub_resource type="Environment" id="Environment_f0flp"]
|
||||||
|
background_mode = 2
|
||||||
|
background_energy_multiplier = 0.2
|
||||||
|
sky = SubResource("Sky_lumfb")
|
||||||
|
sky_rotation = Vector3(0, 0.352557, 0)
|
||||||
|
ambient_light_source = 3
|
||||||
|
ambient_light_color = Color(1, 1, 1, 1)
|
||||||
|
reflected_light_source = 1
|
||||||
|
tonemap_mode = 2
|
||||||
|
ssr_enabled = true
|
||||||
|
ssr_max_steps = 512
|
||||||
|
ssr_depth_tolerance = 0.01
|
||||||
|
ssao_enabled = true
|
||||||
|
ssao_radius = 1.24
|
||||||
|
ssao_intensity = 3.09
|
||||||
|
ssao_power = 1.91184
|
||||||
|
ssao_detail = 3.0
|
||||||
|
ssil_intensity = 0.72
|
||||||
|
ssil_normal_rejection = 0.56
|
||||||
|
sdfgi_enabled = true
|
||||||
|
sdfgi_use_occlusion = true
|
||||||
|
glow_enabled = true
|
||||||
|
glow_levels/2 = 0.3
|
||||||
|
glow_levels/7 = 2.0
|
||||||
|
glow_intensity = 0.4
|
||||||
|
glow_strength = 0.7
|
||||||
|
glow_bloom = 0.13
|
||||||
|
glow_blend_mode = 1
|
||||||
|
glow_hdr_threshold = 0.46
|
||||||
|
fog_enabled = true
|
||||||
|
fog_light_color = Color(0.141176, 0.133333, 0.301961, 1)
|
||||||
|
fog_sky_affect = 0.0
|
||||||
|
fog_height = 1.0
|
||||||
|
fog_height_density = 0.1
|
||||||
|
adjustment_enabled = true
|
||||||
|
|
||||||
|
[sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_2qx32"]
|
||||||
|
auto_exposure_enabled = true
|
||||||
|
auto_exposure_scale = 0.2
|
||||||
|
dof_blur_far_enabled = true
|
||||||
|
dof_blur_far_distance = 0.4
|
||||||
|
dof_blur_far_transition = 0.2
|
||||||
|
dof_blur_near_distance = 0.79
|
||||||
|
dof_blur_amount = 0.0
|
||||||
|
auto_exposure_min_sensitivity = 100.0
|
||||||
|
|
||||||
|
[sub_resource type="GDScript" id="GDScript_uqlwy"]
|
||||||
|
script/source = "extends WorldEnvironment
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
focus_env()
|
||||||
|
|
||||||
|
func focus_env():
|
||||||
|
var dof_strength_tween: Tween = create_tween()
|
||||||
|
dof_strength_tween.tween_property(camera_attributes, \"dof_blur_amount\", 0, 1)
|
||||||
|
|
||||||
|
func focus_object():
|
||||||
|
var dof_strength_tween: Tween = create_tween()
|
||||||
|
dof_strength_tween.tween_property(camera_attributes, \"dof_blur_amount\", 0.6, 1)
|
||||||
|
"
|
||||||
|
|
||||||
[node name="Node3D" type="Node3D"]
|
[node name="Node3D" type="Node3D"]
|
||||||
|
|
||||||
[node name="Node3D" type="Node3D" parent="."]
|
[node name="Node3D" type="Node3D" parent="."]
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Node3D"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.29184, 0, 0)
|
||||||
|
mesh = SubResource("QuadMesh_sj0jk")
|
||||||
|
surface_material_override/0 = SubResource("ShaderMaterial_31q3g")
|
||||||
|
|
||||||
|
[node name="falling" type="MeshInstance3D" parent="."]
|
||||||
|
visible = false
|
||||||
|
mesh = ExtResource("1_kkx3t")
|
||||||
|
skeleton = NodePath("../Node3D/MeshInstance3D")
|
||||||
|
surface_material_override/0 = SubResource("ShaderMaterial_31q3g")
|
||||||
|
|
||||||
|
[node name="raising" type="MeshInstance3D" parent="."]
|
||||||
|
mesh = ExtResource("2_tokpx")
|
||||||
|
skeleton = NodePath("../Node3D/MeshInstance3D")
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
root_node = NodePath("../raising")
|
||||||
|
libraries = {
|
||||||
|
"": SubResource("AnimationLibrary_88lyq")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||||
|
environment = SubResource("Environment_f0flp")
|
||||||
|
camera_attributes = SubResource("CameraAttributesPractical_2qx32")
|
||||||
|
script = SubResource("GDScript_uqlwy")
|
||||||
|
|
||||||
|
[node name="Camera3D" type="Camera3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 0.987688, -0.156434, 0, 0.156434, 0.987688, 0, -0.058, 0.77)
|
||||||
|
fov = 18.0
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue