BlueGit

golden-age paperdoll-renderer

Merge design: loop timing

timfa Grok Bot · pushed by timfa

Authored 2026-11-07 · 7 days ago

Hash
f5d2567b32cb4d4dc065f9b4a5ae8fb7b16a9b31
Pipeline
Passed
1 file changed +4 −0
design.md +4 −0
@@ -368,3 +368,7 @@ Bepaal ook welk 3D-model format goed is; liefst ondersteunen we natuurlijk meerd
368 368 ## Decision 2026-11-07 (Tim t960u): 2D previewer view modes
369 369
370 370 The 2D previewer gets a mode picker: **Resultaat** (default; the real relit composite as the game would show it), **Alleen diffuse**, **Alleen normal map**, **Alleen depth map** and **Alleen specular map**. The map modes show the depth-composited map of the winning layer per pixel directly as the image, unlit, so you can inspect each exported map. Depth is shown as grayscale and normal as its stored RGB encoding. Playback, view selection and equipment selection work the same in every mode; the light controls only affect Resultaat.
371
372 ## Decision 2026-11-07 (Tim t961u): 2D playback loops on whole frames
373
374 Cause found: the 2D preview wrapped its clock on the source clip duration, while the export holds `ceil(duration × fps)` frames. As a result, the last frame of the loop was shown for only `duration − (frames−1)/fps` instead of a full `1/fps`. For example, at 4 fps a clip of 1.1 s showed its fifth frame for only 0.1 s. Fix: playback loops over exactly `frames / fps` seconds, so every frame, including the last, is shown for an equal `1/fps`. A regression test covers a non-whole duration.
@@ -368,3 +368,7 @@ Bepaal ook welk 3D-model format goed is; liefst ondersteunen we natuurlijk meerd
368## Decision 2026-11-07 (Tim t960u): 2D previewer view modes
368## Decision 2026-11-07 (Tim t960u): 2D previewer view modes
369
369
370The 2D previewer gets a mode picker: **Resultaat** (default; the real relit composite as the game would show it), **Alleen diffuse**, **Alleen normal map**, **Alleen depth map** and **Alleen specular map**. The map modes show the depth-composited map of the winning layer per pixel directly as the image, unlit, so you can inspect each exported map. Depth is shown as grayscale and normal as its stored RGB encoding. Playback, view selection and equipment selection work the same in every mode; the light controls only affect Resultaat.
370The 2D previewer gets a mode picker: **Resultaat** (default; the real relit composite as the game would show it), **Alleen diffuse**, **Alleen normal map**, **Alleen depth map** and **Alleen specular map**. The map modes show the depth-composited map of the winning layer per pixel directly as the image, unlit, so you can inspect each exported map. Depth is shown as grayscale and normal as its stored RGB encoding. Playback, view selection and equipment selection work the same in every mode; the light controls only affect Resultaat.
371
372## Decision 2026-11-07 (Tim t961u): 2D playback loops on whole frames
373
374Cause found: the 2D preview wrapped its clock on the source clip duration, while the export holds `ceil(duration × fps)` frames. As a result, the last frame of the loop was shown for only `duration − (frames−1)/fps` instead of a full `1/fps`. For example, at 4 fps a clip of 1.1 s showed its fifth frame for only 0.1 s. Fix: playback loops over exactly `frames / fps` seconds, so every frame, including the last, is shown for an equal `1/fps`. A regression test covers a non-whole duration.