add fake shadow
This commit is contained in:
120
Assets/Meshes/gpdrays_planes.obj
Normal file
120
Assets/Meshes/gpdrays_planes.obj
Normal file
@@ -0,0 +1,120 @@
|
||||
# Blender 4.5.3 LTS
|
||||
# www.blender.org
|
||||
o Plane.021
|
||||
v -5.000001 15.000000 10.000000
|
||||
v -5.000000 15.000000 -10.000000
|
||||
v -5.000000 -5.000000 10.000000
|
||||
v -4.999999 -5.000000 -10.000000
|
||||
v 9.999999 0.000000 10.000000
|
||||
v 10.000001 0.000000 -10.000000
|
||||
v -10.000000 0.000000 10.000000
|
||||
v -9.999999 0.000000 -10.000000
|
||||
v 9.999999 1.000000 10.000000
|
||||
v 10.000001 1.000000 -10.000000
|
||||
v -10.000000 1.000000 10.000000
|
||||
v -9.999999 1.000000 -10.000000
|
||||
v 9.999999 2.000000 10.000000
|
||||
v 10.000001 2.000000 -10.000000
|
||||
v -10.000000 2.000000 10.000000
|
||||
v -9.999999 2.000000 -10.000000
|
||||
v 9.999999 3.000000 10.000000
|
||||
v 10.000001 3.000000 -10.000000
|
||||
v -10.000000 3.000000 10.000000
|
||||
v -9.999999 3.000000 -10.000000
|
||||
v 9.999999 4.000000 10.000000
|
||||
v 10.000001 4.000000 -10.000000
|
||||
v -10.000000 4.000000 10.000000
|
||||
v -9.999999 4.000000 -10.000000
|
||||
v 9.999999 5.000000 10.000000
|
||||
v 10.000001 5.000000 -10.000000
|
||||
v -10.000001 5.000000 10.000000
|
||||
v -9.999999 5.000000 -10.000000
|
||||
v 9.999999 6.000000 10.000000
|
||||
v 10.000001 6.000000 -10.000000
|
||||
v -10.000000 6.000000 10.000000
|
||||
v -9.999999 6.000000 -10.000000
|
||||
v 9.999999 7.000000 10.000000
|
||||
v 10.000001 7.000000 -10.000000
|
||||
v -10.000000 7.000000 10.000000
|
||||
v -9.999999 7.000000 -10.000000
|
||||
v 9.999999 8.000000 10.000000
|
||||
v 10.000001 8.000000 -10.000000
|
||||
v -10.000000 8.000000 10.000000
|
||||
v -9.999999 8.000000 -10.000000
|
||||
v 9.999999 9.000000 10.000000
|
||||
v 10.000001 9.000000 -10.000000
|
||||
v -10.000000 9.000000 10.000000
|
||||
v -9.999999 9.000000 -10.000000
|
||||
v 9.999999 10.000000 10.000000
|
||||
v 10.000001 10.000000 -10.000000
|
||||
v -10.000000 10.000000 10.000000
|
||||
v -9.999999 10.000000 -10.000000
|
||||
v 4.999999 15.000000 10.000000
|
||||
v 5.000000 15.000000 -10.000000
|
||||
v 5.000000 -5.000000 10.000000
|
||||
v 5.000001 -5.000000 -10.000000
|
||||
v 3.999999 15.000000 10.000000
|
||||
v 4.000000 15.000000 -10.000000
|
||||
v 4.000000 -5.000000 10.000000
|
||||
v 4.000001 -5.000000 -10.000000
|
||||
v 2.999999 15.000000 10.000000
|
||||
v 3.000000 15.000000 -10.000000
|
||||
v 3.000000 -5.000000 10.000000
|
||||
v 3.000001 -5.000000 -10.000000
|
||||
v 1.999999 15.000000 10.000000
|
||||
v 2.000000 15.000000 -10.000000
|
||||
v 2.000000 -5.000000 10.000000
|
||||
v 2.000001 -5.000000 -10.000000
|
||||
v 0.999999 15.000000 10.000000
|
||||
v 1.000000 15.000000 -10.000000
|
||||
v 1.000000 -5.000000 10.000000
|
||||
v 1.000001 -5.000000 -10.000000
|
||||
v -0.000001 15.000000 10.000000
|
||||
v 0.000000 15.000000 -10.000000
|
||||
v -0.000000 -5.000000 10.000000
|
||||
v 0.000001 -5.000000 -10.000000
|
||||
v -1.000001 15.000000 10.000000
|
||||
v -1.000000 15.000000 -10.000000
|
||||
v -1.000000 -5.000000 10.000000
|
||||
v -0.999999 -5.000000 -10.000000
|
||||
v -2.000001 15.000000 10.000000
|
||||
v -2.000000 15.000000 -10.000000
|
||||
v -2.000000 -5.000000 10.000000
|
||||
v -1.999999 -5.000000 -10.000000
|
||||
v -3.000001 15.000000 10.000000
|
||||
v -3.000000 15.000000 -10.000000
|
||||
v -3.000000 -5.000000 10.000000
|
||||
v -2.999999 -5.000000 -10.000000
|
||||
v -4.000001 15.000000 10.000000
|
||||
v -4.000000 15.000000 -10.000000
|
||||
v -4.000000 -5.000000 10.000000
|
||||
v -3.999999 -5.000000 -10.000000
|
||||
vn -1.0000 -0.0000 -0.0000
|
||||
vn -0.0000 1.0000 -0.0000
|
||||
vt 0.000000 0.000000
|
||||
vt 1.000000 0.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.000000 1.000000
|
||||
s 0
|
||||
f 1/1/1 2/2/1 4/3/1 3/4/1
|
||||
f 5/1/2 6/2/2 8/3/2 7/4/2
|
||||
f 9/1/2 10/2/2 12/3/2 11/4/2
|
||||
f 13/1/2 14/2/2 16/3/2 15/4/2
|
||||
f 17/1/2 18/2/2 20/3/2 19/4/2
|
||||
f 21/1/2 22/2/2 24/3/2 23/4/2
|
||||
f 25/1/2 26/2/2 28/3/2 27/4/2
|
||||
f 29/1/2 30/2/2 32/3/2 31/4/2
|
||||
f 33/1/2 34/2/2 36/3/2 35/4/2
|
||||
f 37/1/2 38/2/2 40/3/2 39/4/2
|
||||
f 41/1/2 42/2/2 44/3/2 43/4/2
|
||||
f 45/1/2 46/2/2 48/3/2 47/4/2
|
||||
f 49/1/1 50/2/1 52/3/1 51/4/1
|
||||
f 53/1/1 54/2/1 56/3/1 55/4/1
|
||||
f 57/1/1 58/2/1 60/3/1 59/4/1
|
||||
f 61/1/1 62/2/1 64/3/1 63/4/1
|
||||
f 65/1/1 66/2/1 68/3/1 67/4/1
|
||||
f 69/1/1 70/2/1 72/3/1 71/4/1
|
||||
f 73/1/1 74/2/1 76/3/1 75/4/1
|
||||
f 77/1/1 78/2/1 80/3/1 79/4/1
|
||||
f 81/1/1 82/2/1 84/3/1 83/4/1
|
||||
f 85/1/1 86/2/1 88/3/1 87/4/1
|
||||
25
Assets/Meshes/gpdrays_planes.obj.import
Normal file
25
Assets/Meshes/gpdrays_planes.obj.import
Normal file
@@ -0,0 +1,25 @@
|
||||
[remap]
|
||||
|
||||
importer="wavefront_obj"
|
||||
importer_version=1
|
||||
type="Mesh"
|
||||
uid="uid://d3m8muh7jxu7s"
|
||||
path="res://.godot/imported/gpdrays_planes.obj-65ef5e30785c4d8ac9b800543201b211.mesh"
|
||||
|
||||
[deps]
|
||||
|
||||
files=["res://.godot/imported/gpdrays_planes.obj-65ef5e30785c4d8ac9b800543201b211.mesh"]
|
||||
|
||||
source_file="res://Assets/Meshes/gpdrays_planes.obj"
|
||||
dest_files=["res://.godot/imported/gpdrays_planes.obj-65ef5e30785c4d8ac9b800543201b211.mesh", "res://.godot/imported/gpdrays_planes.obj-65ef5e30785c4d8ac9b800543201b211.mesh"]
|
||||
|
||||
[params]
|
||||
|
||||
generate_tangents=true
|
||||
generate_lods=true
|
||||
generate_shadow_mesh=true
|
||||
generate_lightmap_uv2=false
|
||||
generate_lightmap_uv2_texel_size=0.2
|
||||
scale_mesh=Vector3(1, 1, 1)
|
||||
offset_mesh=Vector3(0, 0, 0)
|
||||
force_disable_mesh_compression=false
|
||||
@@ -3,7 +3,6 @@
|
||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_xa3jw"]
|
||||
noise_type = 3
|
||||
seed = 1
|
||||
frequency = 0.005
|
||||
metadata/_preview_in_3d_space_ = true
|
||||
|
||||
[resource]
|
||||
|
||||
@@ -16,7 +16,7 @@ shader_parameter/use_red_as_alpha = true
|
||||
shader_parameter/fog_color = Color(0.8, 0.85, 0.9, 0.5)
|
||||
shader_parameter/scroll_speed = Vector2(0.01, 0.01)
|
||||
shader_parameter/texture_scale = Vector2(1, 1)
|
||||
shader_parameter/edge_softness_y = 0.5
|
||||
shader_parameter/edge_softness_y = 0.16400000779
|
||||
shader_parameter/edge_softness_x = 0.5
|
||||
shader_parameter/night_intensity = 0.0
|
||||
shader_parameter/sun_color = Color(1, 1, 1, 1)
|
||||
|
||||
@@ -12,11 +12,14 @@ shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 5.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/specular_size = 20.000000475
|
||||
shader_parameter/specular_softness = 0.10000000149012
|
||||
shader_parameter/specular_intensity_multiplier = 1.0000000475
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
@@ -11,10 +11,15 @@ shader_parameter/albedo_texture = ExtResource("2_b63ar")
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/specular_size = 60.0
|
||||
shader_parameter/specular_softness = 0.01
|
||||
shader_parameter/specular_intensity_multiplier = 0.5
|
||||
shader_parameter/emission_color = Color(0.63321626, 0.34243506, 0, 1)
|
||||
shader_parameter/emission_energy = 6.000000285
|
||||
|
||||
@@ -16,5 +16,8 @@ shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/specular_size = 60.0
|
||||
shader_parameter/specular_softness = 0.01
|
||||
shader_parameter/specular_intensity_multiplier = 0.5
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
@@ -8,10 +8,16 @@ shader = ExtResource("1_i3cgb")
|
||||
shader_parameter/albedo_color = Color(0.16250518, 0.23871198, 0.21290374, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/specular_size = 60.0
|
||||
shader_parameter/specular_softness = 0.01
|
||||
shader_parameter/specular_intensity_multiplier = 0.5
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
@@ -8,10 +8,16 @@ shader = ExtResource("1_qkrhb")
|
||||
shader_parameter/albedo_color = Color(0.2520276, 0.25202766, 0.25202763, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/specular_size = 60.0
|
||||
shader_parameter/specular_softness = 0.01
|
||||
shader_parameter/specular_intensity_multiplier = 0.5
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
@@ -8,10 +8,16 @@ shader = ExtResource("1_gtyqp")
|
||||
shader_parameter/albedo_color = Color(0.40934297, 0.38911393, 0.34586716, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 5.0
|
||||
shader_parameter/light_steps = 5.0
|
||||
shader_parameter/step_softness = 0.00999999977648
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/specular_size = 60.0
|
||||
shader_parameter/specular_softness = 0.01
|
||||
shader_parameter/specular_intensity_multiplier = 0.5
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
142
Materials/grass.gdshader
Normal file
142
Materials/grass.gdshader
Normal file
@@ -0,0 +1,142 @@
|
||||
shader_type spatial;
|
||||
|
||||
render_mode specular_disabled, cull_disabled, ambient_light_disabled;
|
||||
|
||||
// --- GLOBAL UNIFORMS (Vento e Neve) ---
|
||||
global uniform float wind_scale;
|
||||
global uniform float wind_speed;
|
||||
global uniform float wind_strength;
|
||||
global uniform vec3 wind_direction;
|
||||
global uniform sampler2D wind_noise : filter_linear_mipmap;
|
||||
global uniform float global_snow_amount;
|
||||
|
||||
// --- PARAMETRI ESTETICI ---
|
||||
uniform bool billboard_enabled = true;
|
||||
uniform bool wind_enabled = true;
|
||||
uniform vec4 base_color : source_color = vec4(0.2, 0.6, 0.3, 1.0);
|
||||
uniform sampler2D alpha_texture : source_color, filter_nearest;
|
||||
uniform float leaves_scale = 1.0;
|
||||
uniform float rotation_degrees = 0.0;
|
||||
uniform vec2 texture_offset = vec2(0.0, 0.0);
|
||||
uniform float opacity : hint_range(0.0, 1.0) = 1.0;
|
||||
|
||||
// --- PARAMETRI CHIAZZE ERBA (NOISE PATCHES) ---
|
||||
// Inserisci qui una texture Noise (es. FastNoiseLite in Godot)
|
||||
uniform sampler2D grass_noise : hint_default_white, filter_linear_mipmap;
|
||||
uniform float noise_scale = 0.05; // Più è basso, più le chiazze sono grandi
|
||||
uniform vec4 patch_color : source_color = vec4(0.1, 0.35, 0.2, 1.0); // Colore scuro della chiazza
|
||||
uniform float patch_threshold : hint_range(0.0, 1.0) = 0.5; // Regola quanto sono estese le chiazze
|
||||
uniform float patch_smoothness : hint_range(0.01, 1.0) = 0.2; // Morbidezza sfumatura ai bordi
|
||||
uniform float patch_intensity : hint_range(0.0, 1.0) = 0.85; // Quanto è forte il colore della chiazza
|
||||
|
||||
uniform vec4 snow_color : source_color = vec4(0.85, 0.9, 0.95, 1.0);
|
||||
|
||||
// --- CONTROLLO GRADIENTE E RANDOM ---
|
||||
uniform float height_min = 0.0;
|
||||
uniform float height_max = 5.0;
|
||||
uniform float shadow_intensity : hint_range(0.0, 1.0) = 0.5;
|
||||
uniform float highlight_intensity : hint_range(0.0, 1.0) = 0.3;
|
||||
uniform float light_steps : hint_range(1.0, 10.0) = 4.0;
|
||||
uniform float random_mix : hint_range(0.0, 1.0) = 0.3;
|
||||
|
||||
uniform float cast_shadow_strength : hint_range(0.0, 1.0) = 0.6;
|
||||
|
||||
varying vec3 v_final_color;
|
||||
varying float v_shade_factor;
|
||||
|
||||
float hash(vec3 p) {
|
||||
p = fract(p * 0.1031);
|
||||
p += dot(p, p.yzx + 33.33);
|
||||
return fract((p.x + p.y) * p.z);
|
||||
}
|
||||
|
||||
void vertex() {
|
||||
vec3 instance_pos = MODEL_MATRIX[3].xyz;
|
||||
|
||||
// --- LOGICA VENTO ---
|
||||
float total_angle = radians(rotation_degrees);
|
||||
if (wind_enabled) {
|
||||
float time = TIME * wind_speed;
|
||||
vec2 noise_uv = (instance_pos.xz * wind_scale) + (time * wind_direction.xz * 0.5);
|
||||
float noise_val = textureLod(wind_noise, noise_uv, 2.0).r;
|
||||
float sway = sin(time + (noise_val * 10.0));
|
||||
total_angle += (sway * wind_strength);
|
||||
}
|
||||
|
||||
// --- CALCOLO COLORE BASE ---
|
||||
float h_factor = clamp((instance_pos.y - height_min) / (height_max - height_min), 0.0, 1.0);
|
||||
float leaf_rand = hash(instance_pos);
|
||||
float combined_factor = mix(h_factor, leaf_rand, random_mix);
|
||||
combined_factor = ceil(combined_factor * light_steps) / light_steps;
|
||||
|
||||
v_shade_factor = combined_factor;
|
||||
|
||||
vec3 dark_color = base_color.rgb * (1.0 - shadow_intensity);
|
||||
vec3 light_color = base_color.rgb + (vec3(1.0) - base_color.rgb) * highlight_intensity;
|
||||
vec3 base_grass_color = mix(dark_color, light_color, combined_factor);
|
||||
|
||||
// ---> LOGICA CHIAZZE ERBA (NOISE) <---
|
||||
// Campioniamo il noise usando la posizione XZ del singolo ciuffo d'erba nel mondo.
|
||||
// Usiamo textureLod con 0.0 perché siamo nel vertex shader.
|
||||
float n_val = textureLod(grass_noise, instance_pos.xz * noise_scale, 0.0).r;
|
||||
|
||||
// Creiamo la maschera per la chiazza: liscia ai bordi, solida al centro.
|
||||
float patch_mask = smoothstep(patch_threshold - patch_smoothness, patch_threshold + patch_smoothness, n_val);
|
||||
|
||||
// Mescoliamo il colore base dell'erba con il colore scuro della chiazza
|
||||
v_final_color = mix(base_grass_color, patch_color.rgb, patch_mask * patch_intensity);
|
||||
|
||||
// --- LOGICA TRASFORMAZIONE ---
|
||||
if (billboard_enabled) {
|
||||
vec3 view_pos_origin = (VIEW_MATRIX * vec4(instance_pos, 1.0)).xyz;
|
||||
vec2 offset = (UV - 0.5) * leaves_scale;
|
||||
|
||||
float c = cos(total_angle);
|
||||
float s = sin(total_angle);
|
||||
vec2 rotated_offset = vec2(offset.x * c - offset.y * s, offset.x * s + offset.y * c);
|
||||
|
||||
vec3 final_pos = view_pos_origin + vec3(rotated_offset.x, rotated_offset.y, 0.0);
|
||||
|
||||
MODELVIEW_MATRIX = mat4(1.0);
|
||||
MODELVIEW_MATRIX[3].xyz = final_pos;
|
||||
VERTEX = vec3(0.0);
|
||||
} else {
|
||||
float c = cos(total_angle);
|
||||
float s = sin(total_angle);
|
||||
|
||||
vec2 local_v = (VERTEX.xy) * leaves_scale;
|
||||
VERTEX.x = local_v.x * c - local_v.y * s;
|
||||
VERTEX.y = local_v.x * s + local_v.y * c;
|
||||
}
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
vec2 shifted_uv = UV + texture_offset;
|
||||
vec4 tex = texture(alpha_texture, shifted_uv);
|
||||
|
||||
// Trucco utile per non renderizzare i bordi trasparenti dei piani (opzionale)
|
||||
if (tex.r * opacity < 0.5) {
|
||||
discard;
|
||||
}
|
||||
|
||||
float top_mask = 1.0 - shifted_uv.y;
|
||||
float snow_mask = smoothstep(1.0 - global_snow_amount, 1.2 - global_snow_amount, top_mask);
|
||||
snow_mask *= step(0.01, global_snow_amount);
|
||||
|
||||
vec3 dark_snow = snow_color.rgb * (1.0 - shadow_intensity);
|
||||
vec3 shaded_snow = mix(dark_snow, snow_color.rgb, v_shade_factor);
|
||||
|
||||
vec3 final_albedo = mix(v_final_color, shaded_snow, snow_mask);
|
||||
|
||||
ALBEDO = final_albedo;
|
||||
// ALPHA = tex.r * opacity; -> Disabilitato se usi 'discard' sopra.
|
||||
// ALPHA_SCISSOR_THRESHOLD = 0.5; -> Idem
|
||||
|
||||
ROUGHNESS = 0.02;
|
||||
}
|
||||
|
||||
void light() {
|
||||
float shadow_factor = mix(1.0 - cast_shadow_strength, 1.0, ATTENUATION);
|
||||
float cutoff_mask = smoothstep(0.0, 0.05, ATTENUATION);
|
||||
DIFFUSE_LIGHT += (shadow_factor * LIGHT_COLOR) * cutoff_mask;
|
||||
}
|
||||
1
Materials/grass.gdshader.uid
Normal file
1
Materials/grass.gdshader.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://bpdgijwdxy7n2
|
||||
@@ -8,7 +8,7 @@ render_priority = 0
|
||||
shader = ExtResource("1_528a5")
|
||||
shader_parameter/billboard_enabled = true
|
||||
shader_parameter/wind_enabled = true
|
||||
shader_parameter/base_color = Color(0.19607843, 0.6117647, 0.26666668, 1)
|
||||
shader_parameter/base_color = Color(0.4862745, 0.54509807, 0.29803923, 1)
|
||||
shader_parameter/alpha_texture = ExtResource("2_4d6mx")
|
||||
shader_parameter/leaves_scale = 0.5
|
||||
shader_parameter/rotation_degrees = 180.0
|
||||
|
||||
@@ -16,8 +16,8 @@ shader_parameter/texture_offset = Vector2(0, 0)
|
||||
shader_parameter/opacity = 1.0
|
||||
shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1)
|
||||
shader_parameter/height_min = 6.0
|
||||
shader_parameter/height_max = 12.0
|
||||
shader_parameter/shadow_intensity = 0.650000030875
|
||||
shader_parameter/height_max = 11.0
|
||||
shader_parameter/shadow_intensity = 0.800000038
|
||||
shader_parameter/highlight_intensity = 0.0
|
||||
shader_parameter/light_steps = 10.0
|
||||
shader_parameter/random_mix = 0.0
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[gd_scene format=3 uid="uid://rhehrw5oipc4"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://0uakvynj7hyp" path="res://Assets/Meshes/Chunk/Rotaie/Chunk_Curva_1.fbx" id="1_rsn8b"]
|
||||
[ext_resource type="Material" uid="uid://cit5uciejjoou" path="res://Materials/Grass_Chunk.tres" id="2_024mu"]
|
||||
[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="2_nw560"]
|
||||
[ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="3_nw560"]
|
||||
[ext_resource type="Texture2D" uid="uid://3ot7glyivagg" path="res://Assets/Textures/Texture_Sentiero.png" id="4_nw560"]
|
||||
[ext_resource type="PackedScene" uid="uid://jj15telqu3rp" path="res://Scenes/Test/Grass_Test.tscn" id="4_one63"]
|
||||
[ext_resource type="PackedScene" uid="uid://bfvtlpkcnbgke" path="res://Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_Rettilineo.tscn" id="5_nw560"]
|
||||
@@ -12,6 +12,26 @@ render_priority = 0
|
||||
shader = ExtResource("2_nw560")
|
||||
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_dibca"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("3_nw560")
|
||||
shader_parameter/albedo_color = Color(0.33333334, 0.3764706, 0.1882353, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/specular_size = 60.0
|
||||
shader_parameter/specular_softness = 0.01
|
||||
shader_parameter/specular_intensity_multiplier = 0.5
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_stvfq"]
|
||||
albedo_color = Color(0.9811998, 0.8347986, 0.569528, 1)
|
||||
albedo_texture = ExtResource("4_nw560")
|
||||
@@ -25,7 +45,7 @@ size = Vector3(20, 10, 20)
|
||||
|
||||
[node name="Chunk_052" parent="." index="0" unique_id=2099348783]
|
||||
material_overlay = SubResource("ShaderMaterial_stvfq")
|
||||
surface_material_override/0 = ExtResource("2_024mu")
|
||||
surface_material_override/0 = SubResource("ShaderMaterial_dibca")
|
||||
surface_material_override/1 = SubResource("StandardMaterial3D_stvfq")
|
||||
|
||||
[node name="Punto_1" type="Marker3D" parent="." index="1" unique_id=663165533]
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://cm1x7327vhq8o" path="res://Assets/Meshes/Chunk/Rotaie/Chunk_Rettilineo_1.fbx" id="1_h6p6r"]
|
||||
[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="2_x2uag"]
|
||||
[ext_resource type="Material" uid="uid://cit5uciejjoou" path="res://Materials/Grass_Chunk.tres" id="3_x2uag"]
|
||||
[ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="3_x2uag"]
|
||||
[ext_resource type="PackedScene" uid="uid://bfvtlpkcnbgke" path="res://Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_Rettilineo.tscn" id="4_dqurx"]
|
||||
[ext_resource type="Material" uid="uid://768v64kvq6ho" path="res://Materials/SentieroRotaie.tres" id="4_x2uag"]
|
||||
[ext_resource type="PackedScene" uid="uid://jj15telqu3rp" path="res://Scenes/Test/Grass_Test.tscn" id="5_x2uag"]
|
||||
@@ -12,6 +12,26 @@ render_priority = 0
|
||||
shader = ExtResource("2_x2uag")
|
||||
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_egosm"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("3_x2uag")
|
||||
shader_parameter/albedo_color = Color(0.33333334, 0.3764706, 0.1882353, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/specular_size = 60.0
|
||||
shader_parameter/specular_softness = 0.01
|
||||
shader_parameter/specular_intensity_multiplier = 0.5
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_h6p6r"]
|
||||
size = Vector3(20, 10, 20)
|
||||
|
||||
@@ -19,7 +39,7 @@ size = Vector3(20, 10, 20)
|
||||
|
||||
[node name="Chunk" parent="." index="0" unique_id=1906873929]
|
||||
material_overlay = SubResource("ShaderMaterial_0tij7")
|
||||
surface_material_override/0 = ExtResource("3_x2uag")
|
||||
surface_material_override/0 = SubResource("ShaderMaterial_egosm")
|
||||
surface_material_override/1 = ExtResource("4_x2uag")
|
||||
|
||||
[node name="Punto_1" type="Marker3D" parent="." index="1" unique_id=62151851]
|
||||
|
||||
@@ -22,7 +22,7 @@ shader_parameter/shadow_intensity = 0.730000034675
|
||||
shader_parameter/highlight_intensity = 0.0
|
||||
shader_parameter/light_steps = 10.0
|
||||
shader_parameter/random_mix = 0.10000000475
|
||||
shader_parameter/cast_shadow_strength = 1.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_x5qqn"]
|
||||
center_offset = Vector3(-0.85, 0, 0)
|
||||
@@ -51,7 +51,7 @@ shader_parameter/shadow_intensity = 0.730000034675
|
||||
shader_parameter/highlight_intensity = 0.0
|
||||
shader_parameter/light_steps = 10.0
|
||||
shader_parameter/random_mix = 0.182000008645
|
||||
shader_parameter/cast_shadow_strength = 1.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
|
||||
[sub_resource type="MultiMesh" id="MultiMesh_oq3do"]
|
||||
transform_format = 1
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
[ext_resource type="PackedScene" uid="uid://623itnb41wew" path="res://Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_AngoloInterno.tscn" id="5_vxc6e"]
|
||||
[ext_resource type="Texture2D" uid="uid://32bpa4nk3av1" path="res://Assets/Textures/grass_round.png" id="5_xlq82"]
|
||||
[ext_resource type="PackedScene" uid="uid://sybnjir2d05" path="res://Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_AngoloEsterno.tscn" id="6_8ms8u"]
|
||||
[ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="6_11318"]
|
||||
[ext_resource type="PackedScene" uid="uid://bfvtlpkcnbgke" path="res://Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_Rettilineo.tscn" id="7_8ttth"]
|
||||
[ext_resource type="PackedScene" uid="uid://bhcut7ndtdo2w" path="res://Assets/Test/SK_Mannequin.FBX" id="8_mhtt3"]
|
||||
[ext_resource type="Shader" uid="uid://co2jw3fnyc6aa" path="res://Shaders/tree_leaves.gdshader" id="8_raxwl"]
|
||||
@@ -83,8 +84,25 @@ render_priority = 0
|
||||
shader = ExtResource("4_11318")
|
||||
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vxc6e"]
|
||||
albedo_color = Color(0.22937799, 0.73066276, 0.31752524, 1)
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_raxwl"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("6_11318")
|
||||
shader_parameter/albedo_color = Color(0.33333334, 0.3764706, 0.1882353, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/specular_size = 60.0
|
||||
shader_parameter/specular_softness = 0.01
|
||||
shader_parameter/specular_intensity_multiplier = 0.5
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_hq330"]
|
||||
render_priority = 0
|
||||
@@ -101,7 +119,7 @@ render_priority = 0
|
||||
shader = ExtResource("8_raxwl")
|
||||
shader_parameter/billboard_enabled = true
|
||||
shader_parameter/wind_enabled = true
|
||||
shader_parameter/base_color = Color(0.19607843, 0.6117647, 0.26666668, 1)
|
||||
shader_parameter/base_color = Color(0.4862745, 0.54509807, 0.29803923, 1)
|
||||
shader_parameter/alpha_texture = ExtResource("5_xlq82")
|
||||
shader_parameter/leaves_scale = 0.79
|
||||
shader_parameter/rotation_degrees = 180.0
|
||||
@@ -121,7 +139,7 @@ render_priority = 0
|
||||
shader = ExtResource("8_raxwl")
|
||||
shader_parameter/billboard_enabled = true
|
||||
shader_parameter/wind_enabled = true
|
||||
shader_parameter/base_color = Color(0.19607843, 0.6117647, 0.26666668, 1)
|
||||
shader_parameter/base_color = Color(0.4862745, 0.54509807, 0.29803923, 1)
|
||||
shader_parameter/alpha_texture = ExtResource("5_xlq82")
|
||||
shader_parameter/leaves_scale = 0.7
|
||||
shader_parameter/rotation_degrees = 180.0
|
||||
@@ -141,7 +159,7 @@ render_priority = 0
|
||||
shader = ExtResource("8_raxwl")
|
||||
shader_parameter/billboard_enabled = true
|
||||
shader_parameter/wind_enabled = true
|
||||
shader_parameter/base_color = Color(0.19607843, 0.6117647, 0.26666668, 1)
|
||||
shader_parameter/base_color = Color(0.4862745, 0.54509807, 0.29803923, 1)
|
||||
shader_parameter/alpha_texture = ExtResource("5_xlq82")
|
||||
shader_parameter/leaves_scale = 0.7
|
||||
shader_parameter/rotation_degrees = 180.0
|
||||
@@ -258,7 +276,7 @@ mesh = SubResource("ArrayMesh_s4u17")
|
||||
skeleton = NodePath("")
|
||||
|
||||
[node name="Chunk_004" parent="." index="4" unique_id=2103650482]
|
||||
material_override = SubResource("StandardMaterial3D_vxc6e")
|
||||
material_override = SubResource("ShaderMaterial_raxwl")
|
||||
material_overlay = SubResource("ShaderMaterial_hq330")
|
||||
|
||||
[node name="Chunk_038" parent="." index="5" unique_id=476922148]
|
||||
@@ -298,6 +316,12 @@ transform = Transform3D(0.6122072, 0, 0, 0, 1, 0, 0, 0, 0.6007669, -5.700036, 0.
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.18730783, 0)
|
||||
material_override = SubResource("ShaderMaterial_odndq")
|
||||
|
||||
[node name="MultiMeshInstance3D2" parent="Grass4" index="5" unique_id=135312272]
|
||||
visible = false
|
||||
|
||||
[node name="MultiMeshInstance3D3" parent="Grass4" index="6" unique_id=404396556]
|
||||
visible = false
|
||||
|
||||
[node name="Grass2" parent="." index="15" unique_id=560220625 instance=ExtResource("3_eyx8o")]
|
||||
transform = Transform3D(0.8395087, 0, 0, 0, 1, 0, 0, 0, 0.61816335, -4.278, 0.17403081, -5.945)
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://d3loscamahf5y" path="res://Assets/Meshes/Chunk/Bioma_C/Chunk_C_E_1.fbx" id="1_jpp2r"]
|
||||
[ext_resource type="Script" uid="uid://byluxssk112ca" path="res://Scripts/info_chunk.gd" id="2_02kkq"]
|
||||
[ext_resource type="Material" uid="uid://cit5uciejjoou" path="res://Materials/Grass_Chunk.tres" id="3_sf2c4"]
|
||||
[ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="3_wr3vc"]
|
||||
[ext_resource type="PackedScene" uid="uid://8jtrp8ckqf1a" path="res://Scenes/Chunk_Scene/House/House_muraglione.tscn" id="4_lunjj"]
|
||||
[ext_resource type="PackedScene" uid="uid://5sod22d0vnip" path="res://Scenes/Chunk_Scene/House/House_XL_4.tscn" id="5_tf2ul"]
|
||||
[ext_resource type="PackedScene" uid="uid://birttctl11th8" path="res://Scenes/Chunk_Scene/Chunk/Campagna/chunk_c_l_1.tscn" id="6_4h5ax"]
|
||||
@@ -14,6 +14,26 @@
|
||||
[ext_resource type="PackedScene" uid="uid://4iye3qapad4y" path="res://Scenes/Test/Colonnina_Blockout.tscn" id="11_4n1py"]
|
||||
[ext_resource type="PackedScene" uid="uid://bfvtlpkcnbgke" path="res://Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_Rettilineo.tscn" id="12_rrcoc"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_sqcol"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("3_wr3vc")
|
||||
shader_parameter/albedo_color = Color(0.16470589, 0.50980395, 0.21960784, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/specular_size = 60.0
|
||||
shader_parameter/specular_softness = 0.01
|
||||
shader_parameter/specular_intensity_multiplier = 0.5
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_fim7w"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("7_wr3vc")
|
||||
@@ -119,7 +139,7 @@ est = true
|
||||
ovest = true
|
||||
|
||||
[node name="Chunk_026" parent="." index="0" unique_id=1559745184]
|
||||
material_override = ExtResource("3_sf2c4")
|
||||
material_override = SubResource("ShaderMaterial_sqcol")
|
||||
|
||||
[node name="House_Muraglione" parent="." index="1" unique_id=1060427946 instance=ExtResource("4_lunjj")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, 0, -0.891696)
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="4_r7got"]
|
||||
[ext_resource type="Material" uid="uid://cufolpn48xxmv" path="res://Materials/Treno2.tres" id="5_wgav2"]
|
||||
[ext_resource type="PackedScene" uid="uid://jj15telqu3rp" path="res://Scenes/Test/Grass_Test.tscn" id="6_lt21y"]
|
||||
[ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="6_xt73x"]
|
||||
[ext_resource type="Shader" uid="uid://co2jw3fnyc6aa" path="res://Shaders/tree_leaves.gdshader" id="8_r7got"]
|
||||
[ext_resource type="Texture2D" uid="uid://32bpa4nk3av1" path="res://Assets/Textures/grass_round.png" id="8_td1ds"]
|
||||
[ext_resource type="PackedScene" uid="uid://623itnb41wew" path="res://Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_AngoloInterno.tscn" id="9_jn6md"]
|
||||
@@ -82,8 +83,25 @@ render_priority = 0
|
||||
shader = ExtResource("4_r7got")
|
||||
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vxc6e"]
|
||||
albedo_color = Color(0.19607843, 0.6117647, 0.26666668, 1)
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_i4sa2"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("6_xt73x")
|
||||
shader_parameter/albedo_color = Color(0.33333334, 0.3764706, 0.1882353, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/specular_size = 60.0
|
||||
shader_parameter/specular_softness = 0.01
|
||||
shader_parameter/specular_intensity_multiplier = 0.5
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_7wsa6"]
|
||||
render_priority = 0
|
||||
@@ -100,7 +118,7 @@ render_priority = 0
|
||||
shader = ExtResource("8_r7got")
|
||||
shader_parameter/billboard_enabled = true
|
||||
shader_parameter/wind_enabled = true
|
||||
shader_parameter/base_color = Color(0.19607843, 0.6117647, 0.26666668, 1)
|
||||
shader_parameter/base_color = Color(0.4862745, 0.54509807, 0.29803923, 1)
|
||||
shader_parameter/alpha_texture = ExtResource("8_td1ds")
|
||||
shader_parameter/leaves_scale = 0.79
|
||||
shader_parameter/rotation_degrees = 180.0
|
||||
@@ -120,7 +138,7 @@ render_priority = 0
|
||||
shader = ExtResource("8_r7got")
|
||||
shader_parameter/billboard_enabled = true
|
||||
shader_parameter/wind_enabled = true
|
||||
shader_parameter/base_color = Color(0.19607843, 0.6117647, 0.26666668, 1)
|
||||
shader_parameter/base_color = Color(0.4862745, 0.54509807, 0.29803923, 1)
|
||||
shader_parameter/alpha_texture = ExtResource("8_td1ds")
|
||||
shader_parameter/leaves_scale = 0.7
|
||||
shader_parameter/rotation_degrees = 180.0
|
||||
@@ -140,7 +158,7 @@ render_priority = 0
|
||||
shader = ExtResource("8_r7got")
|
||||
shader_parameter/billboard_enabled = true
|
||||
shader_parameter/wind_enabled = true
|
||||
shader_parameter/base_color = Color(0.19607843, 0.6117647, 0.26666668, 1)
|
||||
shader_parameter/base_color = Color(0.4862745, 0.54509807, 0.29803923, 1)
|
||||
shader_parameter/alpha_texture = ExtResource("8_td1ds")
|
||||
shader_parameter/leaves_scale = 0.7
|
||||
shader_parameter/rotation_degrees = 180.0
|
||||
@@ -227,7 +245,7 @@ mesh = SubResource("ArrayMesh_s4u17")
|
||||
skeleton = NodePath("")
|
||||
|
||||
[node name="Chunk_004" parent="." index="4" unique_id=2103650482]
|
||||
material_override = SubResource("StandardMaterial3D_vxc6e")
|
||||
material_override = SubResource("ShaderMaterial_i4sa2")
|
||||
material_overlay = SubResource("ShaderMaterial_7wsa6")
|
||||
|
||||
[node name="Chunk_038" parent="." index="5" unique_id=476922148]
|
||||
|
||||
@@ -5,6 +5,16 @@
|
||||
[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="2_wanxj"]
|
||||
[ext_resource type="Material" uid="uid://dbmyfi5t0yfy" path="res://Materials/House_Emissiv.tres" id="3_n3fsy"]
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_n4qy2"]
|
||||
offsets = PackedFloat32Array(0.9980237, 1)
|
||||
colors = PackedColorArray(0, 0, 0, 0.5882353, 0, 0, 0, 0)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_wanxj"]
|
||||
gradient = SubResource("Gradient_n4qy2")
|
||||
fill = 2
|
||||
fill_from = Vector2(0.5, 0.5)
|
||||
fill_to = Vector2(0.9017094, 0.12820514)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_fprka"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_wanxj")
|
||||
@@ -12,7 +22,12 @@ shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
|
||||
|
||||
[node name="House_XL_4" unique_id=1350238174 instance=ExtResource("1_r3art")]
|
||||
|
||||
[node name="House_XL_4" parent="." index="0" unique_id=479839665]
|
||||
[node name="Shadow" type="Decal" parent="." index="0" unique_id=705347391]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.15501308)
|
||||
size = Vector3(9, 0.5, 9)
|
||||
texture_albedo = SubResource("GradientTexture2D_wanxj")
|
||||
|
||||
[node name="House_XL_4" parent="." index="1" unique_id=479839665]
|
||||
material_overlay = SubResource("ShaderMaterial_fprka")
|
||||
surface_material_override/0 = ExtResource("2_mswf7")
|
||||
surface_material_override/1 = ExtResource("3_n3fsy")
|
||||
|
||||
@@ -10,8 +10,10 @@
|
||||
[ext_resource type="PackedScene" uid="uid://bvynwhkogurml" path="res://Godrays_Scene.tscn" id="5_gwrkm"]
|
||||
[ext_resource type="Material" uid="uid://codq5gx71rj4o" path="res://Materials/Polvere atmosferica.tres" id="5_u10x4"]
|
||||
[ext_resource type="FastNoiseLite" uid="uid://c0mtwrkptjcuw" path="res://Assets/Textures/Noise_Clouds.tres" id="6_00nhk"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://d3m8muh7jxu7s" path="res://Assets/Meshes/gpdrays_planes.obj" id="6_16mw0"]
|
||||
[ext_resource type="Texture2D" uid="uid://dxahudyvihk8b" path="res://Assets/Textures/Stars.png" id="6_jawsd"]
|
||||
[ext_resource type="Script" uid="uid://brcimd12tx3dm" path="res://Scripts/edge_detection_compositor.gd" id="7_4xv0h"]
|
||||
[ext_resource type="Shader" uid="uid://dkmdtejrbks8n" path="res://Shaders/godrays.gdshader" id="7_qdxup"]
|
||||
[ext_resource type="Texture2D" uid="uid://dey5onb6mwp3f" path="res://Assets/Textures/leaf_particle.png" id="7_vufuq"]
|
||||
[ext_resource type="Script" uid="uid://c5xr1w2tvcxl1" path="res://Scripts/generatore_bioma.gd" id="8_7j5hj"]
|
||||
[ext_resource type="Script" uid="uid://b8x6nf7u6iopv" path="res://Scripts/CameraMove.gd" id="8_17jdd"]
|
||||
@@ -51,6 +53,7 @@
|
||||
[ext_resource type="PackedScene" uid="uid://xebpudhewwwj" path="res://Scenes/Chunk_Scene/Chunk/Campagna/Chunk_C_L_2.tscn" id="35_n33lw"]
|
||||
[ext_resource type="Shader" uid="uid://bl1dwh2k06yy5" path="res://Shaders/Blur.gdshader" id="46_nonqo"]
|
||||
[ext_resource type="Shader" uid="uid://bttmyh64kihyr" path="res://Shaders/Nebbia2D.gdshader" id="47_7j5hj"]
|
||||
[ext_resource type="PackedScene" uid="uid://deoglbhviiria" path="res://Scenes/Chunk_Scene/Chunk/Campagna/chunk_c_x_1.tscn" id="50_6k3cw"]
|
||||
|
||||
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_10fbe"]
|
||||
noise = ExtResource("6_00nhk")
|
||||
@@ -90,18 +93,16 @@ background_mode = 2
|
||||
sky = SubResource("Sky_dhgqn")
|
||||
ambient_light_source = 2
|
||||
tonemap_mode = 2
|
||||
tonemap_exposure = 1.2
|
||||
ssao_enabled = true
|
||||
ssil_enabled = true
|
||||
glow_enabled = true
|
||||
glow_intensity = 0.4
|
||||
glow_strength = 0.8
|
||||
glow_strength = 0.65
|
||||
glow_bloom = 1.0
|
||||
fog_enabled = true
|
||||
fog_mode = 1
|
||||
fog_density = 0.05
|
||||
fog_sky_affect = 0.0
|
||||
volumetric_fog_length = 11.38
|
||||
volumetric_fog_ambient_inject = 0.27
|
||||
|
||||
[sub_resource type="CompositorEffect" id="CompositorEffect_vufuq"]
|
||||
resource_local_to_scene = false
|
||||
@@ -322,6 +323,29 @@ initial_velocity_max = 6.0
|
||||
gravity = Vector3(0, 0, 0)
|
||||
color_ramp = SubResource("GradientTexture1D_on20a")
|
||||
|
||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_xa3jw"]
|
||||
noise_type = 3
|
||||
seed = 4
|
||||
frequency = 0.0096
|
||||
metadata/_preview_in_3d_space_ = true
|
||||
|
||||
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_eyx0r"]
|
||||
noise = SubResource("FastNoiseLite_xa3jw")
|
||||
seamless = true
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_tbvi6"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("7_qdxup")
|
||||
shader_parameter/noise_texture = SubResource("NoiseTexture2D_eyx0r")
|
||||
shader_parameter/ray_color = Color(0.99999994, 0.782454, 0.2698755, 1)
|
||||
shader_parameter/base_alpha = 1.0
|
||||
shader_parameter/noise_stretching = 3.17200010317
|
||||
shader_parameter/noise_scale = 1.0
|
||||
shader_parameter/scrolling_speed = Vector2(-0.15, 0)
|
||||
shader_parameter/depth_softness = 1.0
|
||||
shader_parameter/edge_fade_power = 2.0
|
||||
shader_parameter/intensity_multiplier = 0.03600000171
|
||||
|
||||
[sub_resource type="Curve3D" id="Curve3D_bedag"]
|
||||
closed = true
|
||||
bake_interval = 150.82
|
||||
@@ -479,6 +503,9 @@ shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/specular_size = 60.0
|
||||
shader_parameter/specular_softness = 0.01
|
||||
shader_parameter/specular_intensity_multiplier = 0.5
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
@@ -496,6 +523,9 @@ shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/specular_size = 60.0
|
||||
shader_parameter/specular_softness = 0.01
|
||||
shader_parameter/specular_intensity_multiplier = 0.5
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
@@ -613,6 +643,9 @@ shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/specular_size = 60.0
|
||||
shader_parameter/specular_softness = 0.01
|
||||
shader_parameter/specular_intensity_multiplier = 0.5
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
@@ -630,6 +663,9 @@ shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/specular_size = 60.0
|
||||
shader_parameter/specular_softness = 0.01
|
||||
shader_parameter/specular_intensity_multiplier = 0.5
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
@@ -749,6 +785,8 @@ script = ExtResource("1_cr3ar")
|
||||
color_mattina = Color(0.9342753, 0.77912414, 0.6057529, 1)
|
||||
color_pomeriggio = Color(0.9485261, 0.6254264, 0.38133258, 1)
|
||||
color_notte = Color(0.18353948, 0.18552834, 0.48496485, 1)
|
||||
rotazione_sole_mattina = Vector3(-66, 85, 0)
|
||||
rotazione_sole_notte = Vector3(-66, 85, 0)
|
||||
esposizione_mattina = 0.8
|
||||
esposizione_pomeriggio = 0.7
|
||||
esposizione_notte = 0.9
|
||||
@@ -767,7 +805,7 @@ colore_nebbia_pomeriggio = Color(0.9627952, 0.5901167, 0.75933033, 1)
|
||||
densita_nebbia_mattina = 0.02
|
||||
densita_nebbia_pomeriggio = 0.04
|
||||
bloom_mattina = 0.4
|
||||
bloom_notte = 0.8
|
||||
bloom_notte = 0.6
|
||||
energia_luce_notte = 0.6
|
||||
materiale_nebbia = ExtResource("2_4xv0h")
|
||||
materiale_pioggia_gocce = ExtResource("3_4wepm")
|
||||
@@ -786,8 +824,8 @@ godray_spawn_offset = Vector3(20, 80, 20)
|
||||
godray_rotation_degrees = Vector3(50, 30, 0)
|
||||
godray_scale = Vector3(2, 25, 50)
|
||||
particelle_lucciole = NodePath("SubViewportContainer/SubViewport/World/Camere/CameraPivot/Lucciole")
|
||||
quantita_lucciole = 400
|
||||
raggio_spawn_lucciole = 40.0
|
||||
quantita_lucciole = 550
|
||||
raggio_spawn_lucciole = 60.0
|
||||
particelle_vento = NodePath("SubViewportContainer/SubViewport/World/Camere/CameraPivot/Wind")
|
||||
quantita_vento = 50
|
||||
bottone_neve = NodePath("CanvasLayer/CheckButtonNeve")
|
||||
@@ -834,11 +872,14 @@ light_energy = 0.0
|
||||
shadow_enabled = true
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=789046128]
|
||||
transform = Transform3D(0.4848096, 0.6108477, 0.62595904, -6.256785e-08, -0.71569276, 0.6984152, 0.8746197, -0.33859846, -0.34697473, 0, 4.540125, 24.469929)
|
||||
transform = Transform3D(0.08715579, -0.91147786, 0.4020097, 0, 0.4035453, 0.91495955, -0.99619454, -0.07974404, 0.035171315, 0, 0, 0)
|
||||
light_indirect_energy = 0.0
|
||||
light_volumetric_fog_energy = 0.0
|
||||
shadow_enabled = true
|
||||
shadow_bias = 0.2
|
||||
shadow_opacity = 0.9
|
||||
shadow_blur = 0.2
|
||||
shadow_normal_bias = 0.0
|
||||
shadow_opacity = 0.97
|
||||
shadow_blur = 0.4
|
||||
directional_shadow_mode = 0
|
||||
directional_shadow_fade_start = 0.9
|
||||
|
||||
@@ -871,6 +912,7 @@ script = ExtResource("8_7j5hj")
|
||||
path_treno = NodePath("../Path3D")
|
||||
bioma_campagna = Array[PackedScene]([ExtResource("35_n33lw")])
|
||||
bioma_foresta = Array[PackedScene]([ExtResource("20_00nhk")])
|
||||
raggio_visivo = 4
|
||||
scala_distretti = 0.08
|
||||
|
||||
[node name="MainMap" parent="SubViewportContainer/SubViewport/World" unique_id=1895741703 instance=ExtResource("8_bedag")]
|
||||
@@ -978,13 +1020,13 @@ skeleton = NodePath("../../../../../..")
|
||||
surface_material_override/0 = SubResource("ShaderMaterial_xjipq")
|
||||
|
||||
[node name="Fog" type="MeshInstance3D" parent="SubViewportContainer/SubViewport/World/Camere/CameraPivot" unique_id=1575620825]
|
||||
transform = Transform3D(-0.00869238, -0.66189253, 16.6858, 0.2884251, 28.964518, 0.89438576, -85.35571, 20.688793, -0.20234363, -30.12199, 5.3996053, 49.111935)
|
||||
transform = Transform3D(-0.008675572, -0.67532605, 44.935955, 0.2878669, 29.552338, 2.4086356, -85.190544, 21.108652, -0.54492366, -47.215515, 5.399597, 49.11187)
|
||||
mesh = SubResource("PlaneMesh_gsfny")
|
||||
skeleton = NodePath("../../../../../..")
|
||||
surface_material_override/0 = ExtResource("2_4xv0h")
|
||||
|
||||
[node name="Fog2" type="MeshInstance3D" parent="SubViewportContainer/SubViewport/World/Camere/CameraPivot" unique_id=567097306]
|
||||
transform = Transform3D(-0.00869238, -0.66189253, 16.6858, 0.28842452, 28.964481, 0.8943846, -85.35557, 20.688757, -0.20234334, 22.599558, 6.179737, 49.908066)
|
||||
transform = Transform3D(-0.008677567, -0.6737314, 41.582806, 0.28793296, 29.482548, 2.228902, -85.2101, 21.0588, -0.50426126, 51.961967, 6.179736, 49.90806)
|
||||
mesh = SubResource("PlaneMesh_gsfny")
|
||||
skeleton = NodePath("../../../../../..")
|
||||
surface_material_override/0 = ExtResource("2_4xv0h")
|
||||
@@ -1007,12 +1049,19 @@ process_material = SubResource("ParticleProcessMaterial_6k3cw")
|
||||
draw_pass_1 = ExtResource("21_l1dl0")
|
||||
|
||||
[node name="CameraIso" type="Camera3D" parent="SubViewportContainer/SubViewport/World/Camere/CameraPivot" unique_id=375499667]
|
||||
transform = Transform3D(0.5778576, -0.57709634, 0.57709634, 0, 0.7071067, 0.7071067, -0.8161376, -0.408607, 0.408607, 231.45, 290, 173.79)
|
||||
transform = Transform3D(0.5778576, -0.57709634, 0.5770964, 0, 0.70710677, 0.7071067, -0.8161376, -0.40860698, 0.408607, 231.45, 290, 173.79)
|
||||
projection = 1
|
||||
size = 35.0
|
||||
near = 0.001
|
||||
far = 500.0
|
||||
|
||||
[node name="Godrays" type="MeshInstance3D" parent="SubViewportContainer/SubViewport/World/Camere/CameraPivot" unique_id=1427419882]
|
||||
transform = Transform3D(-0.67549545, -2.1963887, -1.0475811, -0.5471906, 0.28750744, 1.6396307, -0.3011426, 4.4043226, -0.62945014, -14.547424, 12.248147, -19.129498)
|
||||
visible = false
|
||||
mesh = ExtResource("6_16mw0")
|
||||
skeleton = NodePath("../../../../../../DirectionalLight3D")
|
||||
surface_material_override/0 = SubResource("ShaderMaterial_tbvi6")
|
||||
|
||||
[node name="Path3D" type="Path3D" parent="SubViewportContainer/SubViewport/World" unique_id=335893914 node_paths=PackedStringArray("gruppo_camere")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.7547531, 9.898563)
|
||||
curve = SubResource("Curve3D_bedag")
|
||||
@@ -20917,6 +20966,20 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.7385445, 0, 43.8387)
|
||||
[node name="SK_Mannequin2" parent="SubViewportContainer/SubViewport/World" unique_id=24662648 instance=ExtResource("34_3nw1o")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.9180713, 0, 29.270012)
|
||||
|
||||
[node name="Chunk_C_X_4" parent="SubViewportContainer/SubViewport/World" unique_id=1284797159 instance=ExtResource("50_6k3cw")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -80, 5, 140)
|
||||
nord = false
|
||||
est = false
|
||||
sud = false
|
||||
ovest = false
|
||||
|
||||
[node name="Chunk_C_X_2" parent="SubViewportContainer/SubViewport/World" unique_id=1326892054 instance=ExtResource("50_6k3cw")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -100, 10, 140)
|
||||
nord = false
|
||||
est = false
|
||||
sud = false
|
||||
ovest = false
|
||||
|
||||
[node name="ScreenEffect" type="CanvasLayer" parent="SubViewportContainer/SubViewport" unique_id=1639236585]
|
||||
layer = 2
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
[ext_resource type="PackedScene" uid="uid://cqlsf7plpx1tf" path="res://Assets/Test/Tree_V1.fbx" id="1_1rhib"]
|
||||
[ext_resource type="Material" uid="uid://cudoptcrtgl7u" path="res://Materials/grass.tres" id="2_4v7oi"]
|
||||
[ext_resource type="Shader" uid="uid://co2jw3fnyc6aa" path="res://Shaders/tree_leaves.gdshader" id="3_aek5d"]
|
||||
[ext_resource type="Texture2D" uid="uid://cnlnnkjsnccmx" path="res://Assets/Textures/Leaf_Test2.png" id="4_ba7vs"]
|
||||
[ext_resource type="Texture2D" uid="uid://32bpa4nk3av1" path="res://Assets/Textures/grass_round.png" id="4_bawi4"]
|
||||
|
||||
[sub_resource type="QuadMesh" id="QuadMesh_rpt6v"]
|
||||
@@ -19,12 +20,12 @@ buffer = PackedFloat32Array(5.185896e-06, -9.267926e-05, -0.10099996, -4.4373837
|
||||
render_priority = 0
|
||||
shader = ExtResource("3_aek5d")
|
||||
shader_parameter/billboard_enabled = true
|
||||
shader_parameter/wind_enabled = true
|
||||
shader_parameter/base_color = Color(0.15660453, 0.4936788, 0.21260661, 1)
|
||||
shader_parameter/alpha_texture = ExtResource("4_bawi4")
|
||||
shader_parameter/leaves_scale = 0.6
|
||||
shader_parameter/rotation_degrees = 180.0
|
||||
shader_parameter/texture_offset = Vector2(0, 0)
|
||||
shader_parameter/wind_enabled = false
|
||||
shader_parameter/base_color = Color(0.103467666, 0.34917185, 0.14285779, 1)
|
||||
shader_parameter/alpha_texture = ExtResource("4_ba7vs")
|
||||
shader_parameter/leaves_scale = 0.92
|
||||
shader_parameter/rotation_degrees = 0.0
|
||||
shader_parameter/texture_offset = Vector2(0, 0.19)
|
||||
shader_parameter/opacity = 1.0
|
||||
shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1)
|
||||
shader_parameter/height_min = 0.0
|
||||
@@ -45,12 +46,12 @@ buffer = PackedFloat32Array(-1.001, 0, 0, -2.684194, 0, 1.001, -5.966425e-08, -0
|
||||
render_priority = 0
|
||||
shader = ExtResource("3_aek5d")
|
||||
shader_parameter/billboard_enabled = true
|
||||
shader_parameter/wind_enabled = true
|
||||
shader_parameter/base_color = Color(0.20210624, 0.6310462, 0.27384275, 1)
|
||||
shader_parameter/wind_enabled = false
|
||||
shader_parameter/base_color = Color(0.14700681, 0.45590013, 0.22758594, 1)
|
||||
shader_parameter/alpha_texture = ExtResource("4_bawi4")
|
||||
shader_parameter/leaves_scale = 0.6
|
||||
shader_parameter/leaves_scale = 0.46
|
||||
shader_parameter/rotation_degrees = 180.0
|
||||
shader_parameter/texture_offset = Vector2(0, 0)
|
||||
shader_parameter/texture_offset = Vector2(0, 0.155)
|
||||
shader_parameter/opacity = 1.0
|
||||
shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1)
|
||||
shader_parameter/height_min = 0.0
|
||||
@@ -83,6 +84,7 @@ skeleton = NodePath("../MultiMeshInstance3D")
|
||||
|
||||
[node name="Grass" type="MeshInstance3D" parent="." index="3" unique_id=1574618411]
|
||||
transform = Transform3D(13.14, 0, 0, 0, -5.743677e-07, 13.14, 0, -13.14, -5.743677e-07, 0, 0, 0)
|
||||
visible = false
|
||||
transparency = 1.0
|
||||
cast_shadow = 0
|
||||
mesh = SubResource("QuadMesh_txdb7")
|
||||
|
||||
@@ -15,7 +15,8 @@ shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_crne2"]
|
||||
emission_enabled = true
|
||||
emission = Color(1, 0.75645417, 0.2204, 1)
|
||||
emission = Color(0.59849787, 0.2744873, 0.018916829, 1)
|
||||
emission_energy_multiplier = 14.84
|
||||
|
||||
[node name="Train2" unique_id=206892833 instance=ExtResource("1_8k78i")]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0, 0)
|
||||
|
||||
19
Scenes/house_test_4.gdshader
Normal file
19
Scenes/house_test_4.gdshader
Normal file
@@ -0,0 +1,19 @@
|
||||
shader_type spatial;
|
||||
// "unshaded" rende il materiale immune alle altre luci della scena
|
||||
render_mode unshaded, depth_draw_opaque;
|
||||
|
||||
uniform vec4 shadow_color : source_color = vec4(0.0, 0.0, 0.0, 0.6);
|
||||
uniform float radius : hint_range(0.0, 1.0) = 0.45;
|
||||
uniform float softness : hint_range(0.0, 1.0) = 0.1;
|
||||
|
||||
void fragment() {
|
||||
// Calcola la distanza del pixel dal centro del piano (UV 0.5, 0.5)
|
||||
float dist = distance(UV, vec2(0.5, 0.5));
|
||||
|
||||
// smoothstep crea una transizione morbida per i bordi dell'ombra
|
||||
float mask = smoothstep(radius, radius - softness, dist);
|
||||
|
||||
// Applica il colore e gestisce la trasparenza usando la maschera
|
||||
ALBEDO = shadow_color.rgb;
|
||||
ALPHA = mask * shadow_color.a;
|
||||
}
|
||||
1
Scenes/house_test_4.gdshader.uid
Normal file
1
Scenes/house_test_4.gdshader.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://cksojna7cbjpk
|
||||
@@ -9,8 +9,23 @@ render_priority = 0
|
||||
shader = ExtResource("3_n4qy2")
|
||||
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_n4qy2"]
|
||||
offsets = PackedFloat32Array(0.9980237, 1)
|
||||
colors = PackedColorArray(0, 0, 0, 0.5882353, 0, 0, 0, 0)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_0x3ja"]
|
||||
gradient = SubResource("Gradient_n4qy2")
|
||||
fill = 2
|
||||
fill_from = Vector2(0.5, 0.5)
|
||||
fill_to = Vector2(0.9017094, 0.12820514)
|
||||
|
||||
[node name="HouseTest_4" unique_id=462882013 instance=ExtResource("1_03u1s")]
|
||||
|
||||
[node name="Cube_008" parent="." index="0" unique_id=2087805025]
|
||||
material_override = ExtResource("2_n4qy2")
|
||||
material_overlay = SubResource("ShaderMaterial_0x3ja")
|
||||
|
||||
[node name="Shadow" type="Decal" parent="." index="1" unique_id=30846848]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.059038162, 0, 0)
|
||||
size = Vector3(9, 0.5, 9)
|
||||
texture_albedo = SubResource("GradientTexture2D_0x3ja")
|
||||
|
||||
@@ -15,6 +15,14 @@ extends Node3D
|
||||
@export_group("Cinematic Mode")
|
||||
@export var tempo_cambio_camera : float = 10.0
|
||||
|
||||
# --- NUOVO: Variabili per lo Zoom Cinematico ---
|
||||
@export_group("Zoom Isometrico")
|
||||
@export var size_normale : float = 35.0
|
||||
@export var size_zoom : float = 60.0
|
||||
@export var tempo_zoom : float = 1.2
|
||||
var is_zoomed : bool = false
|
||||
var zoom_tween : Tween
|
||||
|
||||
var is_moving_enabled : bool = true
|
||||
|
||||
# --- Variabili Cinematic Mode ---
|
||||
@@ -64,6 +72,20 @@ func _input(event):
|
||||
print("Cinematic Mode: DISATTIVATA")
|
||||
return
|
||||
|
||||
# --- NUOVO: TASTO Z: ZOOM DOLCE CAMERA ISOMETRICA ---
|
||||
if event.keycode == KEY_Z and camera_iso:
|
||||
is_zoomed = !is_zoomed
|
||||
var target_size = size_zoom if is_zoomed else size_normale
|
||||
|
||||
# Se c'è già un'animazione in corso, fermala per evitare conflitti
|
||||
if zoom_tween and zoom_tween.is_valid():
|
||||
zoom_tween.kill()
|
||||
|
||||
zoom_tween = create_tween()
|
||||
zoom_tween.set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_IN_OUT)
|
||||
zoom_tween.tween_property(camera_iso, "size", target_size, tempo_zoom)
|
||||
return
|
||||
|
||||
# --- CONTROLLI MANUALI (1-5) ---
|
||||
var intervento_manuale = false
|
||||
|
||||
|
||||
@@ -5,6 +5,12 @@ extends Node3D
|
||||
@export var color_pomeriggio: Color = Color(1.0, 0.6, 0.2, 1.0)
|
||||
@export var color_notte: Color = Color(0.1, 0.1, 0.3, 1.0)
|
||||
|
||||
# --- NUOVO: Rotazione del Sole ---
|
||||
@export_group("Rotazione Sole (Gradi)")
|
||||
@export var rotazione_sole_mattina: Vector3 = Vector3(-15.0, 45.0, 0.0)
|
||||
@export var rotazione_sole_pomeriggio: Vector3 = Vector3(-75.0, 10.0, 0.0)
|
||||
@export var rotazione_sole_notte: Vector3 = Vector3(-35.0, -120.0, 0.0)
|
||||
|
||||
@export_group("Esposizione Generale")
|
||||
@export var esposizione_mattina: float = 1.0
|
||||
@export var esposizione_pomeriggio: float = 0.95
|
||||
@@ -236,10 +242,11 @@ func _process(delta: float) -> void:
|
||||
var base_fog_color: Color
|
||||
var base_fog_density: float
|
||||
var base_bloom: float
|
||||
var base_esposizione: float # <--- NUOVA VARIABILE
|
||||
var base_esposizione: float
|
||||
var base_grad_top: Color
|
||||
var base_grad_bot: Color
|
||||
var base_grad_intensity: float
|
||||
var base_rotazione_sole: Vector3 # <--- NUOVA VARIABILE
|
||||
|
||||
var tempesta_attiva = is_raining or is_actively_snowing
|
||||
|
||||
@@ -267,10 +274,11 @@ func _process(delta: float) -> void:
|
||||
base_fog_color = colore_nebbia_mattina.lerp(colore_nebbia_pomeriggio, t)
|
||||
base_fog_density = lerp(densita_nebbia_mattina, densita_nebbia_pomeriggio, t)
|
||||
base_bloom = lerp(bloom_mattina, bloom_pomeriggio, t)
|
||||
base_esposizione = lerp(esposizione_mattina, esposizione_pomeriggio, t) # <--- INTERPOLAZIONE MATTINA/POM
|
||||
base_esposizione = lerp(esposizione_mattina, esposizione_pomeriggio, t)
|
||||
base_grad_top = grad_top_mattina.lerp(grad_top_pomeriggio, t)
|
||||
base_grad_bot = grad_bot_mattina.lerp(grad_bot_pomeriggio, t)
|
||||
base_grad_intensity = lerp(intensita_grad_mattina, intensita_grad_pomeriggio, t)
|
||||
base_rotazione_sole = rotazione_sole_mattina.lerp(rotazione_sole_pomeriggio, t) # <--- INTERPOLAZIONE ROTAZIONE
|
||||
else:
|
||||
var t = tempo_giorno - 2.0
|
||||
base_tint = color_pomeriggio.lerp(color_notte, t)
|
||||
@@ -279,10 +287,11 @@ func _process(delta: float) -> void:
|
||||
base_fog_color = colore_nebbia_pomeriggio.lerp(colore_nebbia_notte, t)
|
||||
base_fog_density = lerp(densita_nebbia_pomeriggio, densita_nebbia_notte, t)
|
||||
base_bloom = lerp(bloom_pomeriggio, bloom_notte, t)
|
||||
base_esposizione = lerp(esposizione_pomeriggio, esposizione_notte, t) # <--- INTERPOLAZIONE POM/NOTTE
|
||||
base_esposizione = lerp(esposizione_pomeriggio, esposizione_notte, t)
|
||||
base_grad_top = grad_top_pomeriggio.lerp(grad_top_notte, t)
|
||||
base_grad_bot = grad_bot_pomeriggio.lerp(grad_bot_notte, t)
|
||||
base_grad_intensity = lerp(intensita_grad_pomeriggio, intensita_grad_notte, t)
|
||||
base_rotazione_sole = rotazione_sole_pomeriggio.lerp(rotazione_sole_notte, t) # <--- INTERPOLAZIONE ROTAZIONE
|
||||
|
||||
var final_tint = base_tint.lerp(base_tint * colore_mood_pioggia, intensita_pioggia)
|
||||
var final_sky_top = base_sky_top.lerp(base_sky_top * colore_mood_pioggia, intensita_pioggia)
|
||||
@@ -317,6 +326,7 @@ func _process(delta: float) -> void:
|
||||
|
||||
if sole:
|
||||
sole.light_color = final_tint
|
||||
sole.rotation_degrees = base_rotazione_sole # <--- APPLICAZIONE DELLA ROTAZIONE
|
||||
var target_energy = lerp(1.0, energia_luce_notte, night_val)
|
||||
# La luce del sole scala normalmente in base al meteo/notte (l'esposizione globale fa il resto del lavoro)
|
||||
sole.light_energy = lerp(target_energy, target_energy * 0.4, intensita_pioggia)
|
||||
|
||||
@@ -1,21 +1,35 @@
|
||||
shader_type spatial;
|
||||
|
||||
// Rimosso 'unshaded' per ricevere le ombre.
|
||||
// Aggiunto 'ambient_light_disabled' per proteggere la tua palette dai riflessi del cielo.
|
||||
render_mode specular_disabled, cull_disabled, ambient_light_disabled;
|
||||
|
||||
// --- GLOBAL UNIFORMS (Vento) ---
|
||||
// --- GLOBAL UNIFORMS (Vento e Neve) ---
|
||||
global uniform float wind_scale;
|
||||
global uniform float wind_speed;
|
||||
global uniform float wind_strength;
|
||||
global uniform vec3 wind_direction;
|
||||
global uniform sampler2D wind_noise : filter_linear_mipmap;
|
||||
global uniform float global_snow_amount;
|
||||
|
||||
// --- PARAMETRI ESTETICI ---
|
||||
uniform bool billboard_enabled = true;
|
||||
uniform bool wind_enabled = true;
|
||||
uniform vec4 base_color : source_color = vec4(0.2, 0.6, 0.3, 1.0);
|
||||
uniform sampler2D alpha_texture : source_color, filter_nearest;
|
||||
uniform float leaves_scale = 1.0;
|
||||
uniform float rotation_degrees = 0.0;
|
||||
uniform vec2 texture_offset = vec2(0.0, 0.0);
|
||||
uniform float opacity : hint_range(0.0, 1.0) = 1.0;
|
||||
|
||||
// --- PARAMETRI CHIAZZE ERBA (NOISE PATCHES) ---
|
||||
// Inserisci qui una texture Noise (es. FastNoiseLite in Godot)
|
||||
uniform sampler2D grass_noise : hint_default_white, filter_linear_mipmap;
|
||||
uniform float noise_scale = 0.05; // Più è basso, più le chiazze sono grandi
|
||||
uniform vec4 patch_color : source_color = vec4(0.1, 0.35, 0.2, 1.0); // Colore scuro della chiazza
|
||||
uniform float patch_threshold : hint_range(0.0, 1.0) = 0.5; // Regola quanto sono estese le chiazze
|
||||
uniform float patch_smoothness : hint_range(0.01, 1.0) = 0.2; // Morbidezza sfumatura ai bordi
|
||||
uniform float patch_intensity : hint_range(0.0, 1.0) = 0.85; // Quanto è forte il colore della chiazza
|
||||
|
||||
uniform vec4 snow_color : source_color = vec4(0.85, 0.9, 0.95, 1.0);
|
||||
|
||||
// --- CONTROLLO GRADIENTE E RANDOM ---
|
||||
uniform float height_min = 0.0;
|
||||
@@ -25,12 +39,11 @@ uniform float highlight_intensity : hint_range(0.0, 1.0) = 0.3;
|
||||
uniform float light_steps : hint_range(1.0, 10.0) = 4.0;
|
||||
uniform float random_mix : hint_range(0.0, 1.0) = 0.3;
|
||||
|
||||
// NUOVO: Regola quanto è scura l'ombra proiettata (es. dal tronco) sull'erba
|
||||
uniform float cast_shadow_strength : hint_range(0.0, 1.0) = 0.6;
|
||||
|
||||
varying vec3 v_final_color;
|
||||
varying float v_shade_factor;
|
||||
|
||||
// Funzione hash per generare casualità basata sulla posizione
|
||||
float hash(vec3 p) {
|
||||
p = fract(p * 0.1031);
|
||||
p += dot(p, p.yzx + 33.33);
|
||||
@@ -38,29 +51,43 @@ float hash(vec3 p) {
|
||||
}
|
||||
|
||||
void vertex() {
|
||||
// 1. POSIZIONE DELL'ISTANZA
|
||||
vec3 instance_pos = MODEL_MATRIX[3].xyz;
|
||||
|
||||
// --- 2. LOGICA VENTO ---
|
||||
// --- LOGICA VENTO ---
|
||||
float total_angle = radians(rotation_degrees);
|
||||
if (wind_enabled) {
|
||||
float time = TIME * wind_speed;
|
||||
vec2 noise_uv = (instance_pos.xz * wind_scale) + (time * wind_direction.xz * 0.5);
|
||||
float noise_val = textureLod(wind_noise, noise_uv, 2.0).r;
|
||||
float sway = sin(time + (noise_val * 10.0));
|
||||
float total_angle = radians(rotation_degrees) + (sway * wind_strength);
|
||||
total_angle += (sway * wind_strength);
|
||||
}
|
||||
|
||||
// --- 3. CALCOLO COLORE (LOGICA MIXATA) ---
|
||||
// --- CALCOLO COLORE BASE ---
|
||||
float h_factor = clamp((instance_pos.y - height_min) / (height_max - height_min), 0.0, 1.0);
|
||||
float leaf_rand = hash(instance_pos);
|
||||
float combined_factor = mix(h_factor, leaf_rand, random_mix);
|
||||
|
||||
combined_factor = ceil(combined_factor * light_steps) / light_steps;
|
||||
|
||||
v_shade_factor = combined_factor;
|
||||
|
||||
vec3 dark_color = base_color.rgb * (1.0 - shadow_intensity);
|
||||
vec3 light_color = base_color.rgb + (vec3(1.0) - base_color.rgb) * highlight_intensity;
|
||||
vec3 base_grass_color = mix(dark_color, light_color, combined_factor);
|
||||
|
||||
v_final_color = mix(dark_color, light_color, combined_factor);
|
||||
// ---> LOGICA CHIAZZE ERBA (NOISE) <---
|
||||
// Campioniamo il noise usando la posizione XZ del singolo ciuffo d'erba nel mondo.
|
||||
// Usiamo textureLod con 0.0 perché siamo nel vertex shader.
|
||||
float n_val = textureLod(grass_noise, instance_pos.xz * noise_scale, 0.0).r;
|
||||
|
||||
// --- 4. LOGICA BILLBOARD ---
|
||||
// Creiamo la maschera per la chiazza: liscia ai bordi, solida al centro.
|
||||
float patch_mask = smoothstep(patch_threshold - patch_smoothness, patch_threshold + patch_smoothness, n_val);
|
||||
|
||||
// Mescoliamo il colore base dell'erba con il colore scuro della chiazza
|
||||
v_final_color = mix(base_grass_color, patch_color.rgb, patch_mask * patch_intensity);
|
||||
|
||||
// --- LOGICA TRASFORMAZIONE ---
|
||||
if (billboard_enabled) {
|
||||
vec3 view_pos_origin = (VIEW_MATRIX * vec4(instance_pos, 1.0)).xyz;
|
||||
vec2 offset = (UV - 0.5) * leaves_scale;
|
||||
|
||||
@@ -73,27 +100,43 @@ void vertex() {
|
||||
MODELVIEW_MATRIX = mat4(1.0);
|
||||
MODELVIEW_MATRIX[3].xyz = final_pos;
|
||||
VERTEX = vec3(0.0);
|
||||
} else {
|
||||
float c = cos(total_angle);
|
||||
float s = sin(total_angle);
|
||||
|
||||
vec2 local_v = (VERTEX.xy) * leaves_scale;
|
||||
VERTEX.x = local_v.x * c - local_v.y * s;
|
||||
VERTEX.y = local_v.x * s + local_v.y * c;
|
||||
}
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
vec4 tex = texture(alpha_texture, UV);
|
||||
vec2 shifted_uv = UV + texture_offset;
|
||||
vec4 tex = texture(alpha_texture, shifted_uv);
|
||||
|
||||
ALBEDO = v_final_color;
|
||||
ALPHA = tex.r;
|
||||
ALPHA_SCISSOR_THRESHOLD = 0.5;
|
||||
// Trucco utile per non renderizzare i bordi trasparenti dei piani (opzionale)
|
||||
if (tex.r * opacity < 0.5) {
|
||||
discard;
|
||||
}
|
||||
|
||||
float top_mask = 1.0 - shifted_uv.y;
|
||||
float snow_mask = smoothstep(1.0 - global_snow_amount, 1.2 - global_snow_amount, top_mask);
|
||||
snow_mask *= step(0.01, global_snow_amount);
|
||||
|
||||
vec3 dark_snow = snow_color.rgb * (1.0 - shadow_intensity);
|
||||
vec3 shaded_snow = mix(dark_snow, snow_color.rgb, v_shade_factor);
|
||||
|
||||
vec3 final_albedo = mix(v_final_color, shaded_snow, snow_mask);
|
||||
|
||||
ALBEDO = final_albedo;
|
||||
// ALPHA = tex.r * opacity; -> Disabilitato se usi 'discard' sopra.
|
||||
// ALPHA_SCISSOR_THRESHOLD = 0.5; -> Idem
|
||||
|
||||
// --- IL TRUCCO MAGICO PER L'EDGE DETECTOR ---
|
||||
// Impostiamo la roughness esattamente al 2%.
|
||||
// Il Compute Shader leggerà questo valore e non disegnerà i bordi neri qui sopra!
|
||||
ROUGHNESS = 0.02;
|
||||
}
|
||||
|
||||
// NUOVO: Calcolo luce custom che simula l'effetto "unshaded" (e ora fixa i quadrati!)
|
||||
void light() {
|
||||
float shadow_factor = mix(1.0 - cast_shadow_strength, 1.0, ATTENUATION);
|
||||
|
||||
// Maschera morbida per nascondere i quadrati
|
||||
float cutoff_mask = smoothstep(0.0, 0.05, ATTENUATION);
|
||||
|
||||
DIFFUSE_LIGHT += (shadow_factor * LIGHT_COLOR) * cutoff_mask;
|
||||
}
|
||||
@@ -25,9 +25,13 @@ uniform float light_steps : hint_range(1.0, 10.0, 1.0) = 3.0;
|
||||
uniform float step_softness : hint_range(0.01, 1.0) = 0.1;
|
||||
uniform vec4 shadow_color : source_color = vec4(0.4, 0.4, 0.6, 1.0);
|
||||
uniform float shadow_offset : hint_range(-1.0, 1.0) = 0.0;
|
||||
|
||||
uniform float cast_shadow_strength : hint_range(0.0, 1.0) = 0.6;
|
||||
|
||||
// ---> NUOVI PARAMETRI TOON SPECULAR <---
|
||||
uniform float specular_size : hint_range(10.0, 200.0) = 60.0; // Più è alto, più il punto luce è piccolo
|
||||
uniform float specular_softness : hint_range(0.0, 0.1) = 0.01; // Morbidezza del bordo del punto luce
|
||||
uniform float specular_intensity_multiplier : hint_range(0.0, 2.0) = 0.5; // Forza del riflesso
|
||||
|
||||
group_uniforms Emission_Settings;
|
||||
uniform vec4 emission_color : source_color = vec4(0.0, 0.0, 0.0, 1.0);
|
||||
uniform float emission_energy : hint_range(0.0, 16.0) = 0.0;
|
||||
@@ -79,4 +83,22 @@ void light() {
|
||||
float cutoff_mask = smoothstep(0.0, 0.05, ATTENUATION);
|
||||
|
||||
DIFFUSE_LIGHT += (final_toon_light * LIGHT_COLOR) * cutoff_mask;
|
||||
|
||||
// ---> AGGIUNTA TOON SPECULAR (Metodo 1) <---
|
||||
// Calcoliamo la direzione a metà strada tra la vista e la luce
|
||||
vec3 half_direction = normalize(VIEW + LIGHT);
|
||||
float n_dot_h = max(0.0, dot(NORMAL, half_direction));
|
||||
|
||||
// Applichiamo la potenza (shininess) per definire la dimensione del punto luce
|
||||
float spec_power = pow(n_dot_h, specular_size);
|
||||
|
||||
// Creiamo un gradino netto (Toon) invece della sfumatura classica PBR
|
||||
float toon_specular = smoothstep(0.5 - specular_softness, 0.5 + specular_softness, spec_power);
|
||||
|
||||
// Moltiplichiamo il riflesso per il colore della luce (Sole o Luna)
|
||||
vec3 specular_highlight = LIGHT_COLOR * toon_specular * specular_intensity_multiplier;
|
||||
|
||||
// Sommiamo il punto luce finale alla diffusione, mascherandolo con "cutoff_mask"
|
||||
// per evitare che il riflesso brilli anche nelle zone in ombra profonda.
|
||||
DIFFUSE_LIGHT += (specular_highlight * cutoff_mask);
|
||||
}
|
||||
Reference in New Issue
Block a user