2012-02-09 4 views
0

Pixel Bender 도움말로 레벨 보정을 만들고 싶습니다. 각 채널 (r, g, b)에 대해 수정했습니다. 작동합니다. 그러나 나는 각각에 대해 중간 색조를 교정하는 법을 모른다.도움말을 사용하여 감마 (중간 톤) 변경을 만드는 방법 Pixel Bender?

수식이나 예제가 있습니까?

는 불행하게도 구글이 솔루션

+0

그래프로 무엇을하고 싶은지 설명해 주시겠습니까? – Kodiak

+0

저는 포토샵 레벨과 같은 도구를 만들고 싶습니다. 색상 채널과 감마를 변경할 계획입니다. 채널의 변경을 할 수는 있지만 감마 (중간 톤)에 문제가있었습니다. r = pow (r, gamma)라는 공식을 찾았지만, 저에게는 효과가 없습니다. – Ilya

+0

어떻게 pixelbender에서 수식을 작성 했습니까? – Kodiak

답변

0

난 당신이 색상을 압축하고 채널 별 감마를 계산하는 필터를 찾고 있으리라 믿고있어 가지고 않았습니다. 함께 빠른 필터를 던졌습니다. "적절한"그레이 스케일 감마를 원할 경우

(rgb)->(luma+color)->(gamma correction)->(rgb) 변환을 수행해야 할 수도 있습니다.

<languageVersion : 1.0;> 

kernel untitled 
< namespace : "Your Namespace"; 
    vendor : "Your Vendor"; 
    version : 1; 
> 
{ 
    input image4 src; 
    output pixel4 dst; 

    parameter float low 
    < 
    minValue : 0.0; 
    maxValue : 1.0; 
    defaultValue : 0.0; 
    >; 

    parameter float high 
    < 
    minValue : 0.0; 
    maxValue : 1.0; 
    defaultValue : 1.0; 
    >; 

    parameter float gamma 
    < 
    minValue : 0.0; 
    maxValue : 5.0; 
    defaultValue : 1.0; 
    >; 

    void 
    evaluatePixel() 
    { 

     dst = sampleNearest(src,outCoord()); 
     dst.r = pow(dst.r, gamma); 
     dst.g = pow(dst.g, gamma); 
     dst.b = pow(dst.b, gamma); 

     dst.rgb -= low; 
     dst.rgb /= (high - low); 
    } 
}