`
sjkgxf7191
  • 浏览: 257076 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Pixel Bender 着色器基础知识

阅读更多

原文:http://www.pixelbender.cn/?p=43


Pixel Bender 着色器使用简介

    Adobe Pixel Bender 是一种编程语言,用于创建或操作图像内容。您可以使用 Pixel Bender 创建一个内核 (在本文档中亦称之为着色器 )。着色器定义了一个可对图像的每个像素单独执行的单一函数 。对该函数的每次调用 都将得到图像中该像素坐标处输出颜色 。可通过指定输入图像参数值 来自定义该操作。在着色器的单次执行 中,输入值参数值不变 的。唯一发生变化的是像素(其颜色函数调用结果 )的坐标。

    对多个 输出像素坐标调用着色器函数时,将尽可能采用并行 方式。这样会改进着色器性能,提供高性能的处理能力。

    在 Flash Player 和 Adobe AIR 中,使用着色器可轻松创建三种类型的效果:

    * 绘制 填充
    * 混合 模式
    * 滤镜

    * “Generic number crunching” :使用shader可以处理一组数据(包含复杂的数学运算),功能强,速度快。跟平常使用shader不同,你传递二进制数据 进去,用指定的算法处理这些数据,然后返回处理后的二进制数据

    着色器也可以按独立模式执行。使用独立模式 时,将直接访问着色器的结果 ,而非预先指定着色器的用途。结果可以按图像数据 或者二进制数值数据 的形式访问。该数据完全不必是图像数据。这样一来,您可以为着色器输入一组数据。着色器将处理该数据,然后您可以访问着色器返回的结果数据。


Pixel Bender 着色器常见任务

以下是您可能会在 ActionScript 中使用滤镜完成的任务:

    * 将着色器加载到正在运行的 SWF 应用程序中,或者在编译时嵌入着色器并在运行时访问它。
    * 访问着色器元数据
    * 为着色器标识并指定输入值 (通常为图像)
    * 为着色器标识并指定参数值
    * 着色器有以下几种使用方法:
          o 用于绘制 填充
          o 用于混合 模式
          o 用作滤镜
          o 按独立模式 使用

重要概念和术语

以下参考列表包含本章中会遇到的重要术语:

    * 内核 :对于 Pixel Bender 而言,内核指的就是着色器 。通过 Pixel Bender,您的代码定义了一个内核,它定义了可对图像的每个像素单独执行的单一函数
    * Pixel Bender 字节代码:编译 Pixel Bender 内核时,会将其转换为 Pixel Bender 字节代码 。Flash Player 或 Adobe AIR在运行时访问并执行字节代码
    * Pixel Bender 语言:用于创建 Pixel Bender 内核的编程语言。
    * Pixel Bender 工具包:用于依据 Pixel Bender 源代码创建 Pixel Bender 字节代码文件的应用程序。您可以使用该工具包编写、测试和编译 Pixel Bender 源代码。
    * 着色器:在本文档中,着色器是指采用 Pixel Bender 语言编写的一组功能。着色器的代码会创建视觉效果或执行计算。在任一情况下,着色器都返回一组数据(通常为图像的像素)。着色器对每个数据点执行相同的操作,唯一的区别在于输出像素的坐标不同。
      着色器不是用 ActionScript 编写的。它用 Pixel Bender 语言 编写,并编译为 Pixel Bender 字节代码。着色器可在编译时嵌入 SWF 文件,也可在运行时作为外部文件加载。无论采用上述哪一种方式,都要在 ActionScript 中访问着色器 ,方法是先创建一个 Shader 对象 ,然后将其链接到着色器字节代码。
    * 着色器输入 :一种复杂的输入,通常为位图图像数据 ,该数据提供给着色器供其计算之用。对于着色器中定义的每个输入变量,着色器的整个执行过程都使用单一变量值(即,一个图像或一组二进制数据)。
    * 着色器参数 :提供给着色器供其计算之用的单一值(或限定的值集合)。着色器的每次执行中都会定义各个参数值,该值在着色器的整个执行过程中保持不变


数据类型简介:

 

  • 基本类型:bool、int、float,相当于as里的Boolean、int、Number(使用float的时候必须带小数点,不然编译不通过)
  • 四通道 :红(red)、绿(green)、蓝(blue)、透明(alpha)
  • 通道值范围 :0 - 1
  • image4 :代表一张具有四通道的位图
  • pixel4 :代表一个具有四通道的像素
  • float2 :存放2个float变量(float3、float4 依次类推)
  • pixel4.r :获取红色通道的值(pixel4.g、pixel.b.、pixel4.a 依次类推)
  • float4.x :获取float4中的第一个值(float4.y、float4.z、float4.w 依次类推)
  • myPixel.rgb :返回一个pixel3 变量,包含red、green和blue通道值
  • pixel3(0.5) :表示rgb三个通道的值都是0.5

 

常用函数:

outCoord ():获取当前像素的坐标值。

float 2 pos = outCoord();

 

sampleNearest ():对图片像素点进行取样,第一个参数是输入图片,第二个参数是float2坐标值,找到最接近 float2的那个像素,返回该像素值

dst = sampleNearest(src, outCoord());
 

sampleLinear ():(sample ())找到最接近取样点的四个像素 ,然后取他们的平均值 (采用双线性内插值法),效果更圆滑

 

distance ():计算两个float2之间的距离

float2 pos = outCoord();
float dist = distance(center, pos);

 

sin (x), cos (x), tan (x), asin (x), acos (x), atan (x), exp (x)(e的x次方), log (x), pow (x, y)(x的y次方), sqrt (x)

 

min(x, y, a) :返回对x和y进行线性插值即(x * (1.0 - a) + y * a)后的结果

 

参数设置:可以让Pixel Bender在运行时修改变量值

parameter float myValue
<
    // 默认最小值0、最大值1 和 开始值0
    minValue: 0.0;
    maxValue: 100.0;
    defaultValue: 50.0;
>;
 

 

PS:

1. 以下三组数据等价

  • r, g, b, a
  • x, y, z, w
  • s, t, p, q

2. Pixel Bender Toolkit规定输出 必须是三通道 类型:"output pixel3 result"

分享到:
评论

相关推荐

    基于 Flash 的 Pixel Bender 基础

    **基于Flash的Pixel Bender基础知识** Pixel Bender是Adobe Flash平台中的一种强大的图像处理和滤镜技术,它允许开发者创建自定义的像素级别的图像效果。这项技术是Adobe Flex SDK的一部分,为Flash Player和Adobe ...

    Pixel Bender Toolkit2.5

    Pixel Bender Toolkit2.5

    Pixel Bender Toolkit2.5-part2

    Pixel Bender Toolkit2.5-part2

    Adobe Pixel Bender Example 之 网格效果

    Adobe Pixel Bender Example 之 网格效果

    Pixel Bender basics for Flex and AIR

    Pixel Bender basics for Flex and AIR -- Sample files

    pixel bender pdf

    Reference and documentation Pixel Bender Language Reference (PDF) Pixel Bender Developer's Guide (PDF)

    pixel_bender_basics.zip_adobe flash_pixelbender_roundwps

    Adobe Pixel Bender技术是一种强大的图像处理和滤镜工具,主要用于Adobe Flash平台。这个“pixel_bender_basics.zip”压缩包包含了关于如何在ActionScript中运用Pixel Bender的示例资源,可以帮助开发者深入了解并...

    Adobe.Pixel.Bender.Kernel.Filter.Writing.Tutorial.zh-CN

    创建新滤镜项目:“File-&gt;New Pixel Bender Kernel Filter”,将生成一个基础滤镜模板。 4. **编写和运行kernel程序** - **基本操作**:默认滤镜代码会将像素值乘以0.5。为了实现减半的效果,修改`dst = ...

    AescriptsPixelBenderKernelAcceleratorv1.2.2CS5–CC2017Mac特别版

    Aescripts Pixel Bender Kernel Accelerator Mac破解版是一款可以在苹果电脑中使用的AE调用PBK文件插件,可以在AE中快速调用PBK文件来加速效果制作等,支持CS5 – CC2017版本使用,欢迎有需要的朋友们前来下载使用。...

    pixelbender

    ### Adobe PixelBender知识点概述 #### 一、Adobe PixelBender简介 Adobe PixelBender是一种由Adobe Systems开发的编程语言和技术框架,旨在为图像处理提供高效灵活的解决方案。该技术主要用于实时图像处理任务,...

    AS3技术文档

    这些知识点覆盖了AS3的多个方面,包括日期和时间管理、字符串操作、数组处理、错误处理、正则表达式使用、XML和JSON处理、事件处理、显示编程、几何结构使用、绘图API、位图操作、过滤显示对象以及使用PixelBender...

    shape_bender形体弯曲工具ror sketchup2017

    "Shape Bender"插件就是实现这一功能的专业工具,专为SketchUp用户设计,旨在帮助他们将模型的几何形状沿着预设的曲线路径进行精确的弯曲变形。 SketchUp是一款广泛应用于建筑、室内设计、景观设计等领域的三维建模...

    clf_shape_bender_v055.zip

    为了充分利用clf_shape_bender,用户需要了解Ruby语言基础,熟悉图形处理的基本概念,并能够根据需要配置和调用相关脚本。同时,通过访问SuBlog可以获取更多实践操作和问题解决的帮助。对于专业或业余的图形设计师来...

    像素级碰撞.pbk

    Pixel Bender Toolkit 高效像素及碰撞类

    shape_bender形体弯曲工具ror sketchup2015

    shape_bender形体弯曲工具ror sketchup2015

    actionscript专注图片处理的新书

    本书将指导读者如何使用Pixel Bender技术来开发自己的ActionScript着色器,从而实现对图像的高级滤镜效果。通过学习这些技术,开发者可以创建出复杂的混合模式、填充模式以及其他视觉特效,这些都可以应用于位图上,...

    clf_shape_bender

    弯曲插件草图大师无法弯曲模型,会造成变形。如果你需要建异形,就要用插件 SoapSkinBubble,曲面很好用的插件。 网上下,解压了直接丢plugins文件夹,系统时间改到2009年。

    SU曲线弯曲clf_shape_bender_v055

    SU曲线弯曲clf_shape_bender_v055

Global site tag (gtag.js) - Google Analytics