Skip to content

Rendering algorithms

Jan Hubička edited this page Jul 13, 2024 · 83 revisions

Rendering algorithms

Rendering pipeline for processes with regular screens

Scan of original negative

⇓
Infrared scan of original transparency

⇓
RGB scan of original transparency

⇓
Linearization and inverting negative to positive
⇘
Linearization
⇓
Linearization and channel mixing
⇙
Linear grayscale transparency

⇓
Viewing screen alignment

⇓
linear RGB image with viewing screen
(see viewing screen superposition)

⇓
Determining luminosity of each color patch (optional)
⇓
Blocky linear RGB image (similar to RAW from digital camera)

⇓
Demosaicing using bicubic interpolation (optional)
⇓
Smooth but unsharp linear RGB image

⇓
Combining predicted and original data (optional)
⇓
linear RGB image

⇓
Simulation dyes of viewing screen and conversion to output color profile
⇓
Digital color rendering
## Inverting negative to positive If the original image is a negative, then we first need to simulate process of contact-copying negative to a transparency. Basic invertion to negative may be done by setting `gray_range` in a way minimal value is greater than maximal.

Future plans

Realistic simulation of what happens when negative is copied to a transparency in laboratory involves simulating sensitivity curve of the black and white emulsion used. At the moment this step is not implemented in a satisfactory way and we rely on other tools (such as vuescan) to do this job for us. We yet need to understand how typical sensitivity curves were and what kind of user-interface we want to implement here. Ideally we should do this based on scans of existing negative-transparency pairs.

Clone this wiki locally