Wip : buyancy

This commit is contained in:
Lucas 2025-03-21 17:44:10 +01:00
parent cf76b1d256
commit 1ca99b9897
No known key found for this signature in database
5 changed files with 74 additions and 12 deletions

View file

@ -1,9 +1,11 @@
[gd_scene load_steps=9 format=3 uid="uid://cjjrdfywoxwgr"]
[gd_scene load_steps=11 format=3 uid="uid://cjjrdfywoxwgr"]
[ext_resource type="Material" uid="uid://br11m0qg2yhid" path="res://mat/waterMat.tres" id="1_x7q1n"]
[ext_resource type="Script" uid="uid://dialqdlhpqqsg" path="res://mat/water.gd" id="2_0sebh"]
[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"]
[ext_resource type="PackedScene" uid="uid://babgqvkugifk1" path="res://boat/boat.tscn" id="5_wio4u"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_cdryl"]
sky_top_color = Color(0.308708, 0.682951, 0.784164, 1)
@ -38,6 +40,7 @@ environment = SubResource("Environment_x7q1n")
[node name="Water" type="MeshInstance3D" parent="."]
mesh = SubResource("PlaneMesh_h5gxe")
script = ExtResource("2_0sebh")
[node name="Env" type="Node3D" parent="."]
@ -52,3 +55,6 @@ transform = Transform3D(0.676092, 0, -0.736817, 0, 1, 0, 0.736817, 0, 0.676092,
[node name="OmniLight3D" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.50488, 1.99753, 0.0326443)
[node name="Boat" parent="." instance=ExtResource("5_wio4u")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.208335, 0.773113, 1.74591)

21
mat/water.gd Normal file
View file

@ -0,0 +1,21 @@
extends MeshInstance3D
var material: ShaderMaterial
var noise: FastNoiseLite = preload("res://mat/watershader.tres::FastNoiseLite_gokfr")
var noise_UVscale:Vector2
var wave_speed:float
var height_scale:float
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
material = mesh.surface_get_material(0)
if material:
noise_UVscale = material.get_shader_parameter("RippleTimeScale")
print(noise_UVscale)
FastNoiseLite
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass

1
mat/water.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://dialqdlhpqqsg

View file

@ -5,6 +5,7 @@
[resource]
render_priority = 0
shader = ExtResource("1_337u2")
shader_parameter/Waves = false
shader_parameter/CellsScale = Vector2(15, 15)
shader_parameter/RippleTimeScale = Vector2(0.05, 0.08)
shader_parameter/MaxRippleHeight = 0.15

View file

@ -1,4 +1,4 @@
[gd_resource type="VisualShader" load_steps=73 format=3 uid="uid://dju4bgl0vd6f5"]
[gd_resource type="VisualShader" load_steps=76 format=3 uid="uid://dju4bgl0vd6f5"]
[sub_resource type="VisualShaderNodeUVFunc" id="VisualShaderNodeUVFunc_obdjg"]
linked_parent_graph_frame = 49
@ -317,6 +317,18 @@ default_input_values = [0, Vector2(0, 0), 1, Vector2(0, 0)]
op_type = 0
operator = 2
[sub_resource type="VisualShaderNodeBooleanParameter" id="VisualShaderNodeBooleanParameter_obdjg"]
parameter_name = "Waves"
default_value_enabled = true
default_value = true
[sub_resource type="VisualShaderNodeSwitch" id="VisualShaderNodeSwitch_eafem"]
default_input_values = [0, false, 1, Vector3(1, 1, 1), 2, Vector3(0, 0, 0)]
op_type = 4
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_dt65u"]
input_name = "vertex"
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_obdjg"]
input_name = "time"
@ -348,13 +360,14 @@ varying_type = 3
[resource]
code = "shader_type spatial;
render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_toon, specular_toon;
render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_toon, specular_toon, fog_disabled;
// Varyings
varying vec2 var_Noise;
varying vec2 var_Cells;
uniform bool Waves = true;
uniform vec2 CellsScale = vec2(0.500000, 0.500000);
uniform vec2 RippleTimeScale = vec2(0.050000, 0.080000);
uniform sampler2D tex_vtx_4;
@ -378,6 +391,10 @@ uniform float Spec : hint_range(0.0, 1.0) = 0.96899998188019;
void vertex() {
// BooleanParameter:17
bool n_out17p0 = Waves;
// Input:15
vec2 n_out15p0 = UV;
@ -426,8 +443,17 @@ void vertex() {
vec4 n_out7p0 = fma(n_out4p0, vec4(n_out11p0, 0.0), vec4(n_out5p0, 0.0));
// Input:19
vec3 n_out19p0 = VERTEX;
vec3 n_out18p0;
// Switch:18
n_out18p0 = mix(n_out19p0, vec3(n_out7p0.xyz), float(n_out17p0));
// Output:0
VERTEX = vec3(n_out7p0.xyz);
VERTEX = n_out18p0;
// VaryingSetter:8
@ -653,14 +679,15 @@ void fragment() {
}
"
graph_offset = Vector2(91.628, 272.02)
graph_offset = Vector2(-540.049, 106.316)
modes/diffuse = 3
modes/specular = 1
flags/fog_disabled = true
varyings/Noise = "0,3"
varyings/Cells = "0,3"
nodes/vertex/0/position = Vector2(1080, 320)
nodes/vertex/0/position = Vector2(1460, 340)
nodes/vertex/2/node = SubResource("VisualShaderNodeInput_obdjg")
nodes/vertex/2/position = Vector2(-480, 260)
nodes/vertex/2/position = Vector2(-300, 460)
nodes/vertex/3/node = SubResource("VisualShaderNodeUVFunc_vh75p")
nodes/vertex/3/position = Vector2(-160, 200)
nodes/vertex/4/node = SubResource("VisualShaderNodeTexture_0o2nh")
@ -680,14 +707,20 @@ 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/13/position = Vector2(-800, -180)
nodes/vertex/14/node = SubResource("VisualShaderNodeVaryingSetter_ty10k")
nodes/vertex/14/position = Vector2(-390.622, 1049.07)
nodes/vertex/14/position = Vector2(-420, 140)
nodes/vertex/15/node = SubResource("VisualShaderNodeInput_cgfff")
nodes/vertex/15/position = Vector2(-940, 640)
nodes/vertex/15/position = Vector2(-960, -280)
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/vertex/16/position = Vector2(-440, -180)
nodes/vertex/17/node = SubResource("VisualShaderNodeBooleanParameter_obdjg")
nodes/vertex/17/position = Vector2(920, 80)
nodes/vertex/18/node = SubResource("VisualShaderNodeSwitch_eafem")
nodes/vertex/18/position = Vector2(1280, 140)
nodes/vertex/19/node = SubResource("VisualShaderNodeInput_dt65u")
nodes/vertex/19/position = Vector2(1100, 420)
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, 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, 7, 0, 18, 1, 17, 0, 18, 0, 18, 0, 0, 0, 19, 0, 18, 2)
nodes/fragment/0/position = Vector2(1780, 1540)
nodes/fragment/2/node = SubResource("VisualShaderNodeColorParameter_qysla")
nodes/fragment/2/position = Vector2(240, 920)