Re: Overlay Mode - fix.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Nov 13, 2012 at 9:14 PM, Paul Geraskin <paul_geraskin@xxxxxxx> wrote:
> I had some experience in converting sRGB to linear RGB. When I coded in
> GLSL. I have taken this code from blender GLSL shader.
> The main idea is: convert all inputs to linear RGB, then make formula
> calculation, then convert output to sRGB.
>
> The methods from blender GLSL shader (it works per channel):

in GIMP and GEGL code pixel format conversion between well defined
standard color models and pixel formats is the responsibility of
babl, http://gegl.org/babl/

Converting from 8bits per component sRGB to 32 bit floating point with
the same RGB primaries as sRGB but with a linear gamma ramp is done
like this:

babl_process (babl_format ("R'G'B'A u8"), babl_format ("RGBA float"),
source_buffer, destination_buffer, n_pixels);

Other predefined babl_formats of interest could be
"RaGaBaA half" which is 16bit floats in linear light with
premultiplied alpha. Or "Y' u8" which is 8bit grayscale like you'd
find in a grayscale JPG or PNG.

You can extend babls vocabulary of data types and pixel formats at
runtime as well as register optimized fast-paths, that can be combined
for pairs of formats without their own fast paths (possible
conversions are precision and performance profiled at runtime).

/Øyvind K.
-- 
@hodefoting
_______________________________________________
gimp-developer-list mailing list
gimp-developer-list@xxxxxxxxx
https://mail.gnome.org/mailman/listinfo/gimp-developer-list



[Index of Archives]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [GIMP for Windows]     [KDE]     [GEGL]     [Gimp's Home]     [Gimp on GUI]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux