acdream/src/AcDream.App/Rendering
Erik d2212cfaea fix(render): Part 1 — camera boom convergence snap (kills the at-rest viewer-cell flicker trigger)
Port retail CameraManager::UpdateCamera's convergence snap (0x00456fcd):
once the per-frame lerp step is below 0.0004 m AND the rotation within
0.000199999995, freeze the damped eye at an exact fixed point instead of
Vector3.Lerp's endless sub-mm asymptote. The drift was walking the 3rd-person
eye across the vestibule/room portal plane at rest, flipping the per-frame
viewer-cell resolve 0170<->0171 -> the indoor grey/texture flicker. The
collided-eye firewall (separate publishedEye local) is already present.

Adds ApplyConvergenceSnap static (TDD: 3 unit tests + 1 integration freeze
test) + SnapEpsilon/RotCloseEpsilon. App suite 183 -> 187, all green.

Plan: docs/superpowers/plans/2026-06-05-indoor-viewer-cell-flicker-fix.md

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 15:56:04 +02:00
..
Shaders feat(render): Phase W Stage 4 — sky/weather portal-clip seal (LScape through the doorway) 2026-06-02 16:15:08 +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 fix(render): R1 — repurpose the ParentCellId==null cell-gate bypass (#78) 2026-06-02 20:10:26 +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 refactor(render): Stage 3 T3.1 — delete FindCameraCell AABB grace-frame fallback 2026-06-02 15:36:47 +02:00
ChaseCamera.cs fix(camera): pin chase-camera Z to last-grounded while airborne 2026-04-26 18:23:02 +02:00
ClipFrame.cs feat(render): Phase U.4 — unified gated draw pass (indoor root) 2026-05-30 17:59:21 +02:00
ClipFrameAssembler.cs feat(render): Phase W Stage 4 — sky/weather portal-clip seal (LScape through the doorway) 2026-06-02 16:15:08 +02:00
ClipPlaneSet.cs feat(render): Phase U.2c — ClipPlaneSet (NDC convex region → gl_ClipDistance planes) 2026-05-30 17:03:32 +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 feat(render): V1 — render keys on the viewer cell+eye; lighting stays on the player 2026-06-03 12:40:10 +02:00
ICamera.cs feat(app): extract ICamera interface from OrbitCamera 2026-04-10 20:24:29 +02:00
ICameraCollisionProbe.cs feat(A): wire SweepEye to the verbatim update_viewer (start-cell + fallbacks) 2026-06-05 11:10:32 +02:00
InteriorEntityPartition.cs feat(render): R1 — InteriorEntityPartition (3-bucket per-cell entity split) 2026-06-02 19:53:42 +02:00
InteriorRenderer.cs feat(render): R1 — binary render decision, indoor = per-cell DrawInside only 2026-06-02 20:01:53 +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
PhysicsCameraCollisionProbe.cs feat(A): wire SweepEye to the verbatim update_viewer (start-cell + fallbacks) 2026-06-05 11:10:32 +02:00
PortalProjection.cs fix(render): clip portal projection against frustum side planes (clip-space) 2026-06-05 15:27:24 +02:00
PortalView.cs feat(render): Phase A8.F — ViewPolygon + CellView clip-region data model 2026-05-29 11:30:28 +02:00
PortalVisibilityBuilder.cs fix(render): flood the neighbour when the eye stands in an interior portal 2026-06-05 15:27:39 +02:00
RetailChaseCamera.cs fix(render): Part 1 — camera boom convergence snap (kills the at-rest viewer-cell flicker trigger) 2026-06-05 15:56:04 +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
ScreenPolygonClip.cs feat(render): Phase A8.F — ScreenPolygonClip 2D convex-polygon intersection 2026-05-29 11:37:30 +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 docs(render): Phase W Stage 4 — verify ceiling-sealed / terrain-viewpoint / GL-state + ParentCellId 2026-06-02 16:24:23 +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