Hello

Do QCPluginInputImageProviders account for differences in gamma (ie, 
GenericRGBLinear, GenericRGB vs DisplayRGB color spaces?) and 
correct/linearize? In my tests, they appear not to. Is this a bug or expected 
behavior where plugin developers need to account for gamma themselves?

Let me explain what I am doing and how I am testing this: 

In the process of porting some GLSL shaders from custom QC Plugins to vanilla 
Core Image kernels, I noticed that my output image looks quite different when 
the same logic/math is run through a CIKernel vs a GLSL shader. To simplify and 
make sure I was not doing anything wrong in my custom plugin, I attempted to 
use the GLSL Macro patch to run my shader - which still shows significant 
difference to the core image version - the exact (pixel for pixel) difference 
that my custom plugin has.

It appears as though Core Image is linearizing the input image and then 
applying the kernel functions, where as in the GLSL and custom plugin methods, 
that the image is not being linearized to 1.0 gamma.

Here are two example comps that demonstrate the issue:

Both compositions look the same when the 'amount' variable is set to 0. This is 
passing out the original pixels unchanged in both GLSL and Core Image kernels. 
This results in the same output image appearance (although each image is marked 
with a different color space - Core Image Linear RGB - GLSL with Display RGB).

The second simply mixes to the color white , the first is slightly more 
complicated but demonstrates a bit more of a shift.

When you being to adjust the amount parameters, the results from CI and GL 
begin to diverge pretty drastically.

What exactly is going on here? Is this expected, or not? I would imagine since 
QC and CI both know the colorspaces that the image is in, its own working color 
space, and the output color space, the images ought to match if?

I note that I can get both Core Image an QC to "agree" on output values if I 
use a custom application and initialize a QCRenderer with a GenericRGBLinear 
colorspace.  In that instance both QC and CI always agree, but the output is 
vastly DIFFERENT from the Quartz Composer editor (Display RGB), or from the 
same application with GenericRGB / Display RGB set.

http://i.imgur.com/tdQ1K.jpg 

Attachment: QC Color Space Question 2.qtz
Description: application/quartzcomposer

Attachment: QC Color Space Question.qtz
Description: application/quartzcomposer



Im just curious if this is expected or not, and if I am misunderstanding how QC 
/ CI should be behaving with regard to colorspaces/linearizing. Thanks!
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartzcomposer-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quartzcomposer-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to