effectcraft/docs
bflatastic 94e4afe8de Text: text layers are always rasterised at their on-screen scale (#390)
Text is vector in After Effects and stays sharp at any Scale. Here a
text layer was drawn at its font size and the bitmap resampled by Scale
unless Continuously Rasterize was on, so text grown with Scale went soft.
This reworks #200 (reverted in 29c4d3a for kinetic_typography).

Why kinetic_typography failed: its time remap key at 1.9 s sits on
frame 23 (1.917 s), so main-comp 0.3 s shows the precomp at 1.6026 s,
but the test compared it with the precomp rendered at 1.6 s. The moving,
motion-blurred title already differed by 0.89 of the 1.0 mean-difference
budget on main (0.987 in all); with continuous rasterisation the "Sub"
line, whose expression scale is 84.00 % at 1.6 s and 84.105 % at
1.6026 s, falls on either side of the 2^-1/4 quarter-octave step and was
drawn at 0.84 at one time and at 1.0 at the other, pushing the total to
1.075.

Fix: raster_scale treats text layers as always continuously rasterised
(shape layers and vector footage still follow the switch), and rounds
the quarter-octave step up past rounding noise only: an unscaled layer
at a fractional position measured its scale as 1 + 1e-15 and was
rasterised at 2^1/4, softening unscaled text. The QA test now compares
the remapped precomp with the precomp at the time the remap really
shows (read back from the property): difference 0.63, all of it the
title's motion blur, the Sub line identical.

Tests: tests_collapse::text_scaled_up_stays_sharp_without_the_switch
(from #200: 10 px text at 800 % matches 80 px text),
tests_collapse::unscaled_text_rasterises_at_the_output_scale (fails
without the noise tolerance), automation qa kinetic_typography.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 23:17:32 +07:00
..
brand Licensing: standard LICENSE files, NOTICE, ArtCraft brand terms 2026-10-04 10:05:24 -04:00
fidelity G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
images M0.11: README rewrite with headless screenshots (hero, graph editor, effects, 3D, render queue) 2026-10-01 23:31:40 -04:00
agents.md Timeline: property names have the property menu (#407) 2026-10-09 22:52:56 +07:00
architecture.md Text: text layers are always rasterised at their on-screen scale (#390) 2026-10-09 23:17:32 +07:00
contributors.md About: contributor and model credits compiled in (grab bag + table, self-submitted names) (#228) 2026-10-07 21:16:47 -04:00
control-protocol.md Viewer: the Snapping menu has After Effects' two options 2026-10-09 21:03:12 +07:00
effects.md Merge main into M13.28 worktree 2026-10-04 02:57:55 -04:00
footage.md Import: Interpret Footage has Start Timecode, as in After Effects (#297) 2026-10-09 20:50:39 +07:00
gaps.md Merge pull request #398 from FeiLiuEM/ui-i18n 2026-10-09 10:22:32 -04:00
mcp.md MCP: report render progress and handle cancellation 2026-10-09 00:20:22 -07:00
parity.md Text: text layers are always rasterised at their on-screen scale (#390) 2026-10-09 23:17:32 +07:00
plugins.md Plug-ins: Ease Presets moves out of core into a bundled ScriptUI panel 2026-10-09 21:03:12 +07:00
preferences.md UI: Effect Controls and the Timeline have no parameter row separators, as in After Effects (#402) 2026-10-09 22:13:31 +07:00
releasing.md Release: FreeBSD x86_64, Flatpak x86_64 + aarch64, AppImage zsync updates; README Downloads (#287) 2026-10-08 09:48:00 -04:00
testing.md Effects: the sim golden test accepts macOS 27's libm hash for Mr. Mercury (#232) 2026-10-08 13:36:09 +07:00
web.md Export: a Render Queue job renders every frame on the project's renderer (#414) 2026-10-09 22:26:17 +07:00