d631ff784a
- Restructured kit_demo.tscn from linear demo to enclosed 5.12x5.12 room with walls, floor tiles, pillar, beam, doorway, window - Added WorldEnvironment with ProceduralSky for ambient lighting - Added DirectionalLight3D (sun key light, 45° angle, shadows enabled) - Added OmniLight3D (warm interior fill light) - Added ReflectionProbe for interior specular reflections (box projection, room-sized extents) - Added LightmapGI with balanced quality settings (bounces=3, texel_scale=1.0, max_texture_size=2048, denoiser=true) - Added tool script (kit_demo.gd) that prints bake status in editor - Added bake_lighting.gd CLI bake script (requires GPU-enabled instance) - Updated project.godot with reflection atlas and shadow map quality settings Headless baking note: Godot's standard editor build requires a GPU/display for LightmapGI.bake(). Open the scene in the Godot editor and click 'Bake Lightmap' on the LightmapGI node to generate the baked lightmap data.
30 lines
820 B
GDScript
30 lines
820 B
GDScript
extends Node
|
|
|
|
func _ready():
|
|
var materials = [
|
|
"res://assets/materials/wall_concrete_01.tres",
|
|
"res://assets/materials/wall_concrete_02.tres",
|
|
"res://assets/materials/floor_tile_01.tres",
|
|
"res://assets/materials/floor_concrete_01.tres",
|
|
"res://assets/materials/metal_structural_01.tres",
|
|
"res://assets/materials/accent_team_blue.tres",
|
|
"res://assets/materials/accent_team_red.tres",
|
|
]
|
|
|
|
var all_ok = true
|
|
for mat_path in materials:
|
|
var res = ResourceLoader.exists(mat_path)
|
|
if res:
|
|
var mat = load(mat_path)
|
|
print("OK: " + mat_path + " -> " + str(mat.resource_name))
|
|
else:
|
|
print("FAIL: " + mat_path + " not found")
|
|
all_ok = false
|
|
|
|
if all_ok:
|
|
print("\nAll materials loaded successfully.")
|
|
get_tree().quit(0)
|
|
else:
|
|
print("\nSome materials failed to load.")
|
|
get_tree().quit(1)
|