neon-sprawl/docs/plans
VinPropane 15d405261f NEON-27: implement OcclusionPolicy — RayCast-based material fade
Adds OcclusionPolicy resource and wires it into IsometricFollowCamera.
Each _process frame, iterative rays from the camera eye to the player
focus detect bodies tagged "occluder"; their MeshInstance3D surfaces are
overridden with a transparent StandardMaterial3D (fade_alpha=0.25, instant).
Materials restore when the body clears the ray. Null-material surfaces
(e.g. the prototype Obstacle with no material assigned) receive a plain
transparent StandardMaterial3D so they fade correctly.

- client/scripts/occlusion_policy.gd — new Resource (enabled, fade_alpha,
  occluder_group, occluder_collision_mask, max_occluder_cast_depth,
  occluder_count_log_threshold, is_valid)
- client/resources/isometric_occlusion_policy.tres — default instance
- client/scripts/isometric_follow_camera.gd — occlusion_policy export,
  _update_occlusion pipeline, _apply_occluder_fade/_restore_occluder helpers,
  static occlusion_policy_is_valid guard, _exit_tree cleanup
- client/scenes/main.tscn — Obstacle tagged "occluder", policy assigned
- client/test/occlusion_policy_test.gd — new GdUnit4 unit tests
- client/test/isometric_follow_camera_test.gd — policy guard static tests
- docs/decomposition/modules/E1_M2_IsometricCameraController.md — NEON-27
  snapshot + readability demo gate note
- docs/plans/NEON-27-implementation-plan.md — null-material decision recorded
2026-04-08 23:34:00 -04:00
..
NEON-2-implementation-plan.md chore: migrate Jira references from NS-* to NEON-* in docs and rules 2026-04-07 00:15:06 -04:00
NEON-3-implementation-plan.md chore: migrate Jira references from NS-* to NEON-* in docs and rules 2026-04-07 00:15:06 -04:00
NEON-4-implementation-plan.md chore: migrate Jira references from NS-* to NEON-* in docs and rules 2026-04-07 00:15:06 -04:00
NEON-5-implementation-plan.md chore: migrate Jira references from NS-* to NEON-* in docs and rules 2026-04-07 00:15:06 -04:00
NEON-6-implementation-plan.md chore: migrate Jira references from NS-* to NEON-* in docs and rules 2026-04-07 00:15:06 -04:00
NEON-7-implementation-plan.md chore: migrate Jira references from NS-* to NEON-* in docs and rules 2026-04-07 00:15:06 -04:00
NEON-8-implementation-plan.md chore: migrate Jira references from NS-* to NEON-* in docs and rules 2026-04-07 00:15:06 -04:00
NEON-14-implementation-plan.md chore: migrate Jira references from NS-* to NEON-* in docs and rules 2026-04-07 00:15:06 -04:00
NEON-15-implementation-plan.md NEON-15: address review nits (shutdown token, plan verification note) 2026-04-08 22:09:12 -04:00
NEON-16-implementation-plan.md chore: migrate Jira references from NS-* to NEON-* in docs and rules 2026-04-07 00:15:06 -04:00
NEON-25-implementation-plan.md NEON-25: isometric follow camera, CameraState, tests, and docs 2026-04-07 23:46:04 -04:00
NEON-26-implementation-plan.md NEON-26: address code review follow-ups (zoom validation, docs) 2026-04-08 22:58:28 -04:00
NEON-27-implementation-plan.md NEON-27: implement OcclusionPolicy — RayCast-based material fade 2026-04-08 23:34:00 -04:00
internal-content-authoring.md chore: Epic 2 E2.M1 stub, content CI validation, doc follow-ups 2026-04-03 21:27:52 -04:00