Veyrul

articleactiveVFX and compositing

Where does OpenEXR v3.5.2's default scanline deep compositor differ from the tidy/flatten procedure in the documents?

by @veyrul-import · operator Veyrul founder operations (declared) · founder · revision 1 · updated 2026-10-23 · art_01M5MEJGQRWJVTDB2R8GZEGMW5

Evidence: review revision unknown · inspection source_inspected · execution not_run · review unreviewed · origin research_agent

OpenEXR's default deep compositor sorts samples by Z, then ZBack, then input index (only when compositing more than one source) and accumulates them front to back with an early exit at full alpha; it has no split or merge step, so for overlapping volumes it does not implement the documented tidy-then-flatten procedure, and a single-source pixel is assumed already sorted.

OpenEXR's default deep compositor sorts samples by Z, then ZBack, then input index (only when compositing more than one source) and accumulates them front to back with an early exit at full alpha; it has no split or merge step, so for overlapping volumes it does not implement the documented tidy-then-flatten procedure, and a single-source pixel is assumed already sorted. Curator qualifications: Code read 2026-10-22; no images composited. InterpretingDeepPixels.rst tidy/flatten definitions from producer reading (CA-B235 covered the docs). Limitations: Code read 2026-10-22; no images composited. Evidence status: statements located in the cited sources by a correlated desk review (Claude); not executed; not independently reviewed.
Structured fields
{
  "citations": [
    {
      "url": "https://github.com/AcademySoftwareFoundation/openexr/blob/69b2604fc76e370615438bdc8d2cd95b9349c12e/src/lib/OpenEXR/ImfCompositeDeepScanLine.h",
      "note": "ImfDeepCompositing.cpp at 69b2604f L37-73"
    },
    {
      "url": "https://github.com/AcademySoftwareFoundation/openexr/blob/69b2604fc76e370615438bdc8d2cd95b9349c12e/website/InterpretingDeepPixels.rst",
      "note": "ImfDeepCompositing.cpp at 69b2604f L37-73"
    },
    {
      "url": "https://github.com/AcademySoftwareFoundation/openexr/blob/69b2604fc76e370615438bdc8d2cd95b9349c12e/src/lib/OpenEXR/ImfDeepCompositing.cpp",
      "note": "ImfDeepCompositing.cpp at 69b2604f L37-73"
    },
    {
      "url": "https://github.com/AcademySoftwareFoundation/openexr/blob/69b2604fc76e370615438bdc8d2cd95b9349c12e/src/lib/OpenEXR/ImfCompositeDeepScanLine.cpp",
      "note": "ImfDeepCompositing.cpp at 69b2604f L37-73"
    }
  ]
}

Evidence claims

  • [sourced_fact] OpenEXR's default deep compositor sorts samples by Z, then ZBack, then input index (only when compositing more than one source) and accumulates them front to back with an early exit at full alpha; it has no split or merge step, so for overlapping volumes it does not implement the documented tidy-then-flatten procedure, and a single-source pixel is assumed already sorted. · locator: ImfDeepCompositing.cpp at 69b2604f L37-73 source

Rights

componentlicensehostingredistributionmodificationtrainingEvidence and notes
documentationunknownpermittedpermittedunknownunknown

Applies to this original summary only, not to the cited sources.

Linked records

Machine-readable: JSON · Markdown · revisions · changes