Flash 板


LINE

目前这台电脑没有安装Pixel Bender 我凭印象打的,如果有打错字请见谅 以下src代表来源图片(被修改的图片) dst代表目标图片(输出结果) 首先,Pixel Bender(PB)与Flash内部的DisplacementMapFilter(DMF)思考方向不太一样 DMF是把src上面各个像素按照一个map来移动到新的位置 然後拼出一张新的图,这就是dst 而PB是定义 "每一个dst像素" 的换算公式 所以如果我定义 "dst的像素是src像素的-2相对位置" 那麽结果就是 dst相当於把src往右边移动两个像素 大致就是这样,机制讲完了,就来讲一下简单的语法 基本上用PB开一个新的档案之後 code的基本架构都帮你写好了 第一行是languageVersion,顾名思义,就是PB语言版本 接下来是一些作者个人资料 可以填自己的名字、这个特效的名字等等 整个特效档的定义以关键字 kernal [EffectName] 开头 像是我之前写了一个Tint,就写 kernal Tint 接下来里面有唯一的一个函式evaluatePixel 这就是定义dst像素的地方 PB的基本资料类型有 float, float2, float3, float4 这些就是基本的 一维~四维 浮点数向量 float就是一般程式语言在用的float float2~float4则是两个到四个float被组合起来 然後每个向量都有分量 假如果宣告一个float3 float3 vec3; 那麽vec3的三个分量分别可以用vec3[0], vec3[1], vec3[2]来存取 或者可以依照以下的key来存取 可用的key分成特定群组 1. x, y, z, w 2. r, g, b, a 3.(还有一组key我忘记了...) 所以vec3[0]可以写成vec3.x或者vec3.r 也可以用这些key混搭来产生新的float向量,像这样: float2 vec2 = vec3.rb; //相当於 float2 vec2 = float2(vec3[0], vec3[2]); 以上就是大致的float向量语法 接下来是PB定义dst像素的方式 在evaluatePixel()前面有两个被传入的参数 image4 src; float4 dst; src是一个"完整的图片资料",也就是你传入的资源图档 dst则是一个float4向量,代表输出像素的RGBA值 在自动产生的evaluatePixel()里面有这一行 dst = sampleNearest(src, outCoord()); 这行就是单纯的把src的像素copy到dst的像素 所以只是复制原本的图片而已 sampleNearest的第一个参数是个image4资料 outCoord()则会回传这个dst像素所对应的座标(float2) 所以sampleNearest()就是回传src离目标像素座标最近的像素RGBA值(float4) 这边目标像素座标是outCoord() 你也可以用自己的float2向量来指定座标 ↑通常都是要这样才有办法做进阶效果 除了smapleNearest()以外还有一个sample()或者sampleLinear() 如果你传的float2座标不是整数值 sample()或者sampleLinear()会对周围的四个像素作线性内插 回传比较smooth的像素值 相对的,这样也比较消耗运算资源 image4输入资料可以不只一个 你也可以再定义一个image4资料 然後由这两个资料决定dst的运算方式 最後说明一下参数(parameter) 顾名思义,参数就是要让你调整用的 也就是当你用Flash读取pbj特效档的时候,可以调整的数值 参数定义於kernal与evaluatePixel()中间 以下有一个float3的范例 parameter float3 colorRGB < minValue: float3(0.0, 0.0, 0.0); maxValue: float3(1.0, 1.0, 1.0); defaultValue: float3(0.5, 0.5, 0.5); >; 以上就会生成一个叫做colorRGB的float3参数 其值的范围只能在(0, 0, 0)和(1, 1, 1)之间变动 而预设值是(0.5, 0.5, 0.5); 所有的parameter都会在PB成功compile并且执行你的code以後 出现在右方的parameter inspector栏位中 可以手动调整,也可以直接数入数值 好啦,以上就是PB的大致的语法与运作机制初步探讨 接下来我会陆续po上一些简单的范例 -- CJ Cat = Croa'J Cat = Cockroach Cat = 西街凯特 = 蜚蠊猫 = 蟑螂猫 Blog http://cjcat.blogspot.com Gallery http://cjcat2266.deviantart.com ptt2 Board CJWorkshop - 阿多比闪光(Adobe Flash)研讨区 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.18.189
1F:推 suPerFlyK:感谢 05/23 13:55
2F:推 ComicMan:太实用了 感谢 05/24 15:35







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP