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燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP