The corrections a capture node applies on its way out of the sensor. More...
Detailed Description
The corrections a capture node applies on its way out of the sensor.
A raw sensor frame is not a picture. Demosaicing turns a mosaic into RGB and stops there, deliberately, because everything after it is per-sensor: the pedestal the sensor sits at, the gains that make grey grey under this light, and the transfer curve that makes linear samples look right on a display. Those belong to the camera, not to the reconstruction, which is why they are a separate block rather than more constructor arguments on the decoder.
Defaults are the identity. A pipeline that sets nothing renders the raw demosaiced frame – including the linear transfer curve, which looks dark. Changing that default would silently restyle every existing project, so the correction is offered rather than imposed.
Published by a control callback on whatever thread wrote it, consumed by the render thread. A generation counter carries the handoff: the renderer reads one atomic per frame and only takes the lock when something actually moved, so dragging a slider never stalls rendering and rendering never stalls the UI.
Go to the source code of this file.
Classes | |
| struct | score::gfx::CaptureAdjust |
| Sensor-side corrections, in the order the shader applies them. More... | |
| class | score::gfx::CaptureAdjustSlot |
| Cross-thread handoff for CaptureAdjust. More... | |
| struct | score::gfx::CaptureMaterialUBO |
| The capture path's material block: the shared one, plus corrections. More... | |
Namespaces | |
| namespace | score |
| Base toolkit upon which the software is built. | |
| namespace | score::gfx |
| Graphics rendering pipeline for ossia score. | |
Functions | |
| void | score::gfx::applyTo (const CaptureAdjust &a, CaptureMaterialUBO &ubo) noexcept |
Fills the correction half of ubo. The geometry half is the caller's. | |
| void | score::gfx::adjustCaptureReference (const CaptureAdjust &a, float rgb[3]) noexcept |
| The corrections, on the CPU, in the same order the shader applies them. | |