e385eae0f5
- docs/performance-budget.md: 60fps/2GB VRAM budget with CPU, GPU, memory, and draw-call targets (P95<16.6ms, P99<50ms) - scripts/profiling/: SceneTree + Node profilers, test scenes - scripts/generate_occluders.gd: auto-generate OccluderInstance3D from CSG wall pieces (128^3 voxel occlusion culling) - scripts/convert_csg_to_mesh.gd: CSG->StaticMesh baker with LOD slots (LOD1@15m, LOD2@30m) - project.godot: occlusion culling + LOD settings enabled - modular scene UV2 data from lightmapping pass - rcon_command_handler.gd conflict resolved (kept upstream plugin cmd) - Fixed profiler_node.gd warmup frame bug (60 frames, not 3) - Fixed convert_csg_to_mesh.gd LOD API (add_lod + distance)
22 lines
409 B
GDScript
22 lines
409 B
GDScript
extends SceneTree
|
|
|
|
func _init():
|
|
print("_init called")
|
|
# Add a simple node to trigger processing
|
|
var n = Node.new()
|
|
n.name = "test"
|
|
n.set_process(true)
|
|
root.add_child(n)
|
|
print("Node added")
|
|
|
|
func _process(delta: float) -> bool:
|
|
print("_process called: delta=", delta)
|
|
if frame_count > 5:
|
|
print("Quitting after 5 frames")
|
|
quit(0)
|
|
return true
|
|
frame_count += 1
|
|
return true
|
|
|
|
var frame_count := 0
|