The shipping default had NO anti-aliasing at all: the temporal resolve was removed, the setting's first option went on saying "Temporal", and MSAA defaults to one sample, so every machine without DLSS drew grass and needle cards with nothing smoothing an edge. FXAA in the sharpen pass, which already reads the neighbourhood and runs last on the LDR image. No history, so it cannot drag or smear a reflection. 25.5% less single-pixel staircase on edge pixels. The trap, recorded because it inverted the result: the unsharp delta must be computed from the RAW image and only then applied to the anti-aliased colour. Centre from FXAA and neighbours from the raw texture measures half smoothing and half signal, so the mask sharpens precisely what FXAA softened - 29% WORSE than no anti-aliasing at all. Depth of field for the photo mode: a disc whose radius is the circle of confusion, normalised by focus distance so a landscape shot is not a macro, with taps rejected unless they are at least as out of focus as the pixel they blur into - which is what stops a sharp foreground haloing into a blurred background. Between the scene and the bloom, so a blurred highlight still blooms. Skipped whole when the aperture is shut. 400 frames in ordinary play: GL 7.1 s, VK 7.2 s - the lens does not draw there. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| a-leaf-is-not-matte.md | ||
| a-lens-and-an-edge.md | ||
| light-air-and-the-hour.md | ||
| light-you-can-see.md | ||
| README.md | ||
| the-ground-up-close.md | ||
Changesets
A changeset is one small Markdown file describing a single user-facing change,
dropped in this directory. ludic-dev release consumes every changeset here into a new
CHANGELOG.md section, bumps VERSION, and deletes the consumed files.
Format
bump: minor
type: feat
One or more lines describing the change, in the past-agnostic imperative used in
the changelog. Markdown is fine.
bump:—major,minor, orpatch(SemVer). The release version is bumped by the highest level among the pending changesets (unlessludic-dev release <level>overrides it).type:— the Conventional Commit type (feat,fix,perf,docs, …). It decides which group the change lands in:feat→ Features,fix→ Fixes,perf→ Performance, and so on, in that order. A type with no known heading gets one named after itself.
Writing the body
The body is markdown and reaches the changelog as markdown: it becomes one list item, with continuation lines indented to stay inside it. Nested bullets, blank lines between paragraphs and inline code all survive.
bump: minor
type: feat
**Tiled map support** — load and draw Tiled maps.
- **TMX/TSX** — the XML formats, decoded to the same intermediate as JSON.
- **Collision** — the `collision` layer projects onto the engine tilemap.
Lead with the thing that changed, not with the mechanism. A reader scanning the release should be able to stop after your first clause.
Adding one
Create a file with a short, unique name, e.g. changes/regex-namespace.md. Any
filename works except this README.md, which the release step always skips.
Preview how the next release will read before cutting it — this writes nothing:
ludic-dev release --dry-run