WIP: feat(scene) integrate beauty pass — shader water, building blockouts, wind, smoke, 6 textures

- Add 3 missing Terrain3D textures: Dirt Path (id=3), Riverbank Stone (id=4),
  Compacted Ground (id=5) with procedural albedo PNGs + generate tool
- Replace greybox river BoxMesh with animated vertex-displacement water shader
- Replace greybox waterfall BoxMesh with scrolling-UV waterfall shader
- Add WaterfallMist GPUParticles3D with upward drift and alpha fade
- Add wind vertex shader for tree canopies (sin-based, height-weighted sway)
- Replace StylizedTree.tscn with script-driven procedural tree supporting
  3 canopy color variants and position-based randomization
- Replace greybox house boxes with StylizedHouse (walls + pitched roof + door)
- Replace mill box with StylizedMill (body + roof + water wheel cylinder)
- Replace fortress box with FortressBlockout (keep + parapet + corner turret)
- Replace bridge box with BridgeBlockout (deck + pillar supports)
- Add ChimneySmoke GPUParticles3D on each house roof
- Height-snap buildings (fortress + village) to terrain surface in _ready()
- Update JajceWorld.tscn: remove all greybox landmark sub-resources, instance
  new scenes, keep terrain/navigation/sky/fog as-is
- Update scaffold test for new scene structure and beauty elements
This commit is contained in:
2026-07-05 20:10:45 +02:00
parent 6c11dc5dd6
commit 22613a445e
29 changed files with 669 additions and 169 deletions
+41
View File
@@ -0,0 +1,41 @@
[gd_scene load_steps=6 format=3]
[sub_resource type="Curve" id="1"]
_data = [Vector2(0, 1), Vector2(1, 0)]
min_value = 0.0
max_value = 1.0
[sub_resource type="CurveTexture" id="2"]
curve = SubResource("1")
[sub_resource type="ParticleProcessMaterial" id="3"]
emission_shape = 1
emission_box_extents = Vector3(0.1, 0.025, 0.1)
gravity = Vector3(0, 0.3, 0)
velocity_min = 0.0
velocity_max = 0.5
scale_min = 0.05
scale_max = 0.6
color = Color(0.8, 0.8, 0.8, 0.6)
alpha_curve = SubResource("2")
[sub_resource type="QuadMesh" id="4"]
size = Vector2(1, 1)
material = SubResource("5")
[sub_resource type="StandardMaterial3D" id="5"]
albedo_color = Color(1, 1, 1, 1)
transparency = 1
shading_mode = 0
billboard_mode = 1
cull_mode = 0
[node name="ChimneySmoke" type="GPUParticles3D"]
emitting = true
amount = 16
lifetime = 3.0
one_shot = false
local_coords = true
process_material = SubResource("3")
draw_pass_1 = SubResource("4")
draw_order = 1