fix: repair jajce beauty asset pipeline

This commit is contained in:
2026-07-05 23:24:08 +02:00
parent ed0bc3f37f
commit fde2101690
10 changed files with 103 additions and 28 deletions
+27 -3
View File
@@ -11,6 +11,8 @@ func _run() -> void:
var camera := Camera3D.new()
camera.current = true
root.add_child(camera)
var configured_assets: Terrain3DAssets = load("res://terrain/jajce/assets.tres")
var configured_texture_count := configured_assets.get_texture_count()
var world: Node3D = load("res://world/jajce/JajceWorld.tscn").instantiate()
root.add_child(world)
@@ -25,12 +27,26 @@ func _run() -> void:
"Terrain3D should use dedicated Jajce data"
)
_check(
terrain.assets.get_texture_count() >= 3,
configured_texture_count == 6,
(
"Jajce terrain should expose at least three materials (found %s)"
% terrain.assets.get_texture_count()
"Jajce terrain should define the bounded six-material palette (found %s)"
% configured_texture_count
)
)
var texture_contract_valid := true
for texture_index in configured_texture_count:
var texture_asset: Terrain3DTextureAsset = configured_assets.get_texture(texture_index)
texture_contract_valid = (
texture_contract_valid
and texture_asset.albedo_texture != null
and texture_asset.normal_texture != null
and texture_asset.albedo_texture.get_image().has_mipmaps()
and texture_asset.normal_texture.get_image().has_mipmaps()
)
_check(
texture_contract_valid,
"All Terrain3D texture assets should provide matching mipmapped maps"
)
_check(
absf(terrain.data.get_height(Vector3.ZERO)) < 0.1,
"Central gameplay area should remain level for current navigation"
@@ -52,6 +68,11 @@ func _run() -> void:
world.has_node("WaterRoot/WaterfallMist"),
"WaterRoot should include waterfall mist particles"
)
var waterfall_mist: GPUParticles3D = world.get_node("WaterRoot/WaterfallMist")
_check(
waterfall_mist.draw_pass_1 != null,
"Waterfall mist particles should have visible billboard geometry"
)
_check(world.has_node("WaterRoot/RiverSurface"), "WaterRoot should include a river surface")
var environment: Environment = (
(world.get_node("WorldEnvironment") as WorldEnvironment).environment
@@ -67,6 +88,9 @@ func _run() -> void:
var smoke_count := 0
for suffix in ["House_01", "House_02", "House_03"]:
if world.has_node("VillageRoot/%s/Smoke" % suffix):
var smoke: GPUParticles3D = world.get_node("VillageRoot/%s/Smoke" % suffix)
if smoke.draw_pass_1 == null:
continue
smoke_count += 1
_check(
smoke_count >= 2,