acdream/src/AcDream.App/Rendering
Erik 3764867566 fix(picker): Cluster A #86 — cell-BSP ray occlusion in WorldPicker
WorldPicker.Pick previously had no occlusion test — any entity along
the click ray within maxDistance was a candidate, including ones
behind walls. Adds the CellBspRayOccluder static helper that
Möller-Trumbore-tests the click ray against every polygon in every
currently-cached EnvCell BSP, returning the nearest wall-hit `t`.
Both Pick overloads gate candidate selection by that wall-t (legacy
ray-sphere via world-space `t`, screen-rect via camera-space clip.W
depth — matching ScreenProjection.TryProjectSphereToScreenRect's
convention).

PhysicsDataCache exposes a new CellStructIds snapshot accessor so the
caller can iterate without needing the private cache dictionary.
CellPhysics.BSP/PhysicsPolygons/Vertices relaxed from required to
nullable so test fixtures can construct a CellPhysics from Resolved
alone without a real DAT BSP object. GameWindow snapshots the loaded
cell physics on each Pick call and passes the occluder callback.

Closes #86.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 14:41:56 +02:00
..
Shaders fix(render): close #52 — lifestone visible (alpha-test + cull + uDrawIDOffset) 2026-05-10 15:49:05 +02:00
Sky refactor(sky): replace per-frame wrap-mode mutation with persistent samplers 2026-04-29 08:08:26 +02:00
Vfx feat(vfx #C.1.5b): activator handles dat-hydrated entities + per-part transforms 2026-05-12 00:02:16 +02:00
Wb feat(wb): ConsoleErrorLogger + cause report — H1 swallowed-exception confirmed 2026-05-19 13:00:18 +02:00
BitmapFont.cs feat(ui): debug overlay + refined input controls 2026-04-17 18:45:38 +02:00
CameraController.cs feat(camera): InputAction + DebugVM surface for retail chase camera 2026-05-18 20:04:34 +02:00
CellVisibility.cs fix(lighting): trigger indoor ambient on PLAYER cell, not camera cell 2026-05-19 10:38:48 +02:00
ChaseCamera.cs fix(camera): pin chase-camera Z to last-grounded while airborne 2026-04-26 18:23:02 +02:00
DebugLineRenderer.cs feat(ui): debug overlay + refined input controls 2026-04-17 18:45:38 +02:00
FlyCamera.cs feat(app): slow default fly speed and add Shift-boost 2026-04-11 19:19:12 +02:00
FrustumCuller.cs feat(app): Phase A.2 — FrustumCuller + FrustumPlanes (Gribb-Hartmann) 2026-04-12 08:49:17 +02:00
GameWindow.cs fix(picker): Cluster A #86 — cell-BSP ray occlusion in WorldPicker 2026-05-19 14:41:56 +02:00
ICamera.cs feat(app): extract ICamera interface from OrbitCamera 2026-04-10 20:24:29 +02:00
OrbitCamera.cs feat(app): extract ICamera interface from OrbitCamera 2026-04-10 20:24:29 +02:00
ParticleRenderer.cs feat(vfx): Phase C.1 — PES particle renderer + post-review fixes 2026-04-28 22:47:11 +02:00
RetailChaseCamera.cs fix(camera): retail-faithful jump-tracking via contact-plane projection 2026-05-19 09:32:50 +02:00
SamplerCache.cs refactor(sky): replace per-frame wrap-mode mutation with persistent samplers 2026-04-29 08:08:26 +02:00
SceneLightingUboBinding.cs feat(render): Phase G.1/G.2 — SceneLighting UBO + sky renderer + shader integration 2026-04-19 10:39:48 +02:00
Shader.cs feat(ui): debug overlay + refined input controls 2026-04-17 18:45:38 +02:00
TerrainAtlas.cs feat(A.5 T22.5): wire QualityPreset into renderer + streaming (commit 2/2) 2026-05-10 08:43:06 +02:00
TerrainModernRenderer.cs feat(A.5 T22.5): wire QualityPreset into renderer + streaming (commit 2/2) 2026-05-10 08:43:06 +02:00
TextRenderer.cs feat(ui): debug overlay + refined input controls 2026-04-17 18:45:38 +02:00
TextureCache.cs docs(perf): Phase N.6 slice 1 — radius=12 baseline + surface dump path 2026-05-11 12:34:10 +02:00