MPCDI
MPCDI (Multiple Projector Common Data Interchange) is the VESA standard for exchanging projector warp and blend data between systems. A camera-based auto-calibration system measures a multi-projector setup and writes the result as an .mpcdi file containing the warp shape, the soft-edge blend, and an optional black-level correction for each projector. WATCHOUT reads the file directly, so the calibration computed by the external system is applied at the display with no manual setup.
WATCHOUT imports VESA MPCDI v1.0 and v2.0 files, 2D Media profile only. See Standards Compliance below for the exact subset of the standard that is consumed.
Importing an MPCDI File
Drag an .mpcdi file onto the Stage. Each region in the file becomes a display in the show, positioned and sized according to the region's buffer coordinates and resolution. The file itself is imported as a Display Data asset under the show's Asset Manager.
WATCHOUT remembers which MPCDI asset each display was created from. When you replace the file with an updated version, every display that came from it picks up the new geometry and blend data automatically.
What WATCHOUT Applies from the File
The renderer applies three layers of correction sampled from the MPCDI file in a single warp-and-blend pass after compositing:
Sub-pixel Warp
WATCHOUT applies the MPCDI warp at sub-pixel precision — much finer than the junction grid of the built-in Warp Geometry editor. This is what makes MPCDI suitable for camera-measured calibration, where the alignment error is well below one display pixel.
Per-Channel Alpha Blend with Baked-in Colour Calibration
The MPCDI alpha mask is an RGB image: red, green, and blue can be attenuated independently at every pixel. That lets the mask carry two things at once:
- The soft-edge blend that fades adjacent projectors into each other in the overlap region.
- A per-pixel colour and brightness correction that compensates for differences between projectors in the array.
Calibration systems bake both into the same mask. No separate per-display white point or colour LUT is needed when the MPCDI file already carries the correction.
Beta Mask Black-Level Lift
Projectors don't produce true black: light leaks through the lens even when the image is dark. In overlap regions where two or more projectors cover the same area, this leakage stacks and produces a visibly lighter wedge that breaks the seamless look. The MPCDI beta mask compensates by lifting the black level of the non-overlap area so the dark floor is uniform across the whole surface.
Two beta-mask variants are accepted:
- Single-channel — one offset applied equally to red, green, and blue.
- Three-channel — separate offsets per channel, used when the projector's black leakage has a colour tint.
If the MPCDI file does not include a beta mask, only the alpha blend is applied.
Interaction with Other Display Features
Displays created from an MPCDI file have several built-in features turned off, because the MPCDI data already covers them:
- Automatic soft edges are not applied — the MPCDI alpha mask carries the blend.
- Display white point sliders are unused for the same reason — colour correction is baked into the alpha mask.
- Custom Warp Geometry and Display Masks can still be enabled on top, but they layer onto an already-warped output. Typical workflow is to leave both off and trust the MPCDI calibration.
Updating a Calibration
When the calibration is re-run, the calibration system writes a new .mpcdi file. Drop the new file into the show's Asset Watcher location to update the existing Display Data asset. At showtime, WATCHOUT picks up the new file and updates every linked display's position, size, and resolution to match — no manual reconfiguration needed.
This makes MPCDI well suited to venues where the rig moves: re-calibrate, drop the new file, and the show updates on the next render.
Standards Compliance
WATCHOUT consumes a deliberate subset of the VESA MPCDI standard, sized to what the renderer can use. Files that declare features outside this subset will load but the unsupported parts are silently ignored.
Container and Version
.mpcdiZIP container, mpcdi.xml descriptor.- Versions 1.0 and 2.0.
Profile
| Profile | Status |
|---|---|
| 2D Media | Supported. PFM data is interpreted as a forward 2D UV map per VESA §3.6.2. |
| 3D Simulation, Advanced 3D, Shader Lamps | Not supported. No frustum, coordinate-frame, distortion-map, or 3D-position rendering path in the renderer. Files import without error but render incorrectly. |
Geometry Level
| Level | Status |
|---|---|
| Level 1 (≤ 32×32 grid) | Supported. |
| Level 2 (up to per-pixel) | Supported. The optimizer does not impose a grid-size limit; PFM dimensions drive vertex count directly. |
Color
WATCHOUT does not match any single Color Level cleanly. It implements a hybrid subset:
| Feature | Supported | Level in the spec |
|---|---|---|
| Encode gamma (single value) | Yes | 1, 2 |
| Single-channel alpha map | Yes | 1, 2, 3 |
| 3-channel RGB alpha map | Yes | 4, 5 |
| Single-channel beta map | Yes | 2, 3 |
| 3-channel RGB beta map | Yes | 4, 5 |
| Decode gamma | Ignored | 1, 2 |
| Decode 1D LUT | Ignored | 3, 4, 5 |
| Correct: 1D LUT + RGB primaries | Ignored | 3, 4 |
| Correct: 3D LUT | Ignored | 5 |
| Encode 1D LUT | Ignored | 3, 4 |
| Encode 3D LUT | Ignored | 5 |
In practice this means alpha and beta masks are honoured at full per-channel resolution, but per-projector colour correction must be baked into the alpha mask by the calibration system — WATCHOUT does not apply MPCDI's separate decode/correct/encode LUT pipeline.
Files
| File | Status |
|---|---|
alphaMap (PNG) | Read. 1 or 3 channels, 8 or 16 bit. gammaEmbedded applied at import. |
betaMap (PNG) | Read. 1 or 3 channels, 8 or 16 bit. |
geometryWarpFile (PFM) | Read. 2D forward UV map, sub-pixel precision. |
distortionMap (PFM) | Ignored. Only meaningful for the Shader Lamps profile. |
decodeLUT / correctLUT / encodeLUT (.cube) | Ignored. |
extensionSet | Ignored. |
XML Descriptor
| Element | Status |
|---|---|
MPCDI profile/geometry/color/version attributes | Read for routing; only 2d profile produces correct output. |
display / buffer / region | Read. Each region becomes one display with its xResolution / yResolution. |
color / encode / gamma | Read (single gamma value applied at output). |
color / decode / correct | Ignored. |
frustum, coordinateFrame | Ignored. |
Related
- Display Calibration — driving an external calibration system from WATCHOUT and the NDI calibration stream workflow.
- Warp Geometry — WATCHOUT's own mesh-based warp editor, used when MPCDI is not available.
- Edge Blending — automatic soft edges, the built-in alternative to MPCDI's alpha blend.