PixelBender 简介

来源:互联网 发布:linux内核sleep函数 编辑:程序博客网 时间:2024/06/05 07:45

 PixelBender是Adobe公司的一项图像处理算法开发工具,该工具基于GLSL(OpenGL Shader Language),使用它你的图像处理算法能力充分利用GPU和多核心CPU的能量,提高图像处理的速度。当然,如果想要最大程度的提高你算法的速度,那么你的算法必须适合并行话,否则,有的时候反而降低的效率。该开发工具虽然没有CUDA工具的强大,但是该开发工具确实相当简单。不过,你利用该工具开发出来的kernel目前只能用于Adobe家的产品里面,如Photoshop CS4, After Effect CS4等,这有点保守了。

 

说了那么多,先来介绍一个该工具自带的一个例子吧:

 

// 指定语言版本,目前是1.0版本

<languageVersion: 1.0;>
 

// 一些注释性文字
kernel InvertRGB
<   namespace : "AIF";
    vendor : "Adobe Systems, Inc.";
    version : 2;
    description : "Invert the Red, Green and Blue channels of an image"; >


{

    // 输入图像
    input image4 src;

 

    // 输出图像
    output float4 dst;
    
    // kernel,算法的核心
    void
    evaluatePixel()
    {
        // 获取当前像素值,outCoord获取当前像素坐标,sampleNearest()函数进行值采样,从而获取像素值
        float4 inputColor = sampleNearest(src, outCoord());

 

        // 计算新的RGB值,反色
        dst.rgb = float3(1.0, 1.0, 1.0) - inputColor.rgb;
       
        // 设置Alpha通道的值,1.0为不透明,0.0为全透明

        dst.a = inputColor.a;
    }
}

 

 

 

这里有个小提示:浮点型的数值一定要跟小数点,否则会报错!

Kernel在显卡中的多个stream processor同时运行,实现的算法的并行处理。

原创粉丝点击