mirror of
https://github.com/storytold/photocraft.git
synced 2026-10-28 10:11:58 +01:00
Each Cryptomatte RGBA set stores two (ID, coverage) ranks, (red, green) and (blue, alpha), but only red/green were read, so every second rank was lost and mattes got holes at edges and overlaps. Suffixes were also matched case-sensitively, missing Blender's .R/.G/.B/.A. Stream channels now carry a rank (0 red/green, 1 blue/alpha), suffixes match in any case, and decode stores each channel at slot*2+rank (bounds-checked), still sorted by coverage. The allocation check counts four channels per set. Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>