Quoting Richard Hughes <hughsi...@gmail.com>:

> I'm playing around with using a ClutterShader to do full screen color
> management using GLSL on the GPU. I'm aiming to integrate the
> functionality into future versions of mutter for GNOME 3.

Hi, if you can implement tetrahedral interpolation as a shader, you can
make color transforms to fly. The basis are not too complex, you need
to create a color transform from/to RGB first, Then by using
cmsSliceSpaceFloat(), build a 3D lookup table by evaluating your tranform
on each node. Then upload this table plus the image to convert into
GPU memory. 3D table of 17 points is enough for all but hardly non-linear
color spaces. 33 points should be enough for everything. As long as the
color transform is same (sRGB to monitor, for example) you can reuse
same table. Color transform may involve any intent and many profiles,
softproofing for example.

Don't waste time implementing prelinearizations or weird things,
give first a try to this simple 17-points table. If tetrahedral
is hard to implement for you due to tetrahedra subdivision, use
triliner instead.

Good luck. I know for sure this can be done and I know for
sure that it works.

Regards
Marti


------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Lcms-user mailing list
Lcms-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lcms-user

Reply via email to