介紹,組成,使用原因,
介紹
Adobe Pixel Bender Toolkit 是在CS4 中新加的東西,最新版本為隨Adobe Flash CS5 一起發行的Adobe Pixel Bender Toolkit2。
組成
1.Pixel Bender kernel language這是 Adobe 定義的一種語言,用來編寫影像處理的演算法,適用於 CPU 和 GPU。
2. Pixel Bender graph language基於 XML 的語言,用來整合不同的 kernel,以達到更複雜的效果。
3.Pixel Bender Toolkit IDEPixel Blender 的圖形介面開發工具。
4. 命令列工具用來將 Pixel Bender kernel 轉換成 Flash Player 10 需要的 byte-code。
5.其他的範例、檔案
而實際上在自行編寫 Pixel Bender 的時候,就是透過 Pixel Bender Toolkit IDE 來編寫 Pixel Bender 的 kernel 和 graph 了~而也正如同的這樣的敘述,Pixel Bender 的語言,包含了 kernel 和 graph 兩個部分。
kernel 是 Pixel Bender 進行影像處理的最基本單元(實際上的意義也接近 nVidia CUDA 的 kernel),他的工作相當簡單,就是“算出單一像素的顏色”;也就是根據給予的影像,取出一些點來做計算,並且輸出一個點最後要呈現的顏色。所以在輸出影像上的每個點,都會跑一次 kernel 的流程,而彼此間是完全不相關,也無法溝通的。
關於 Pixel Bender Kernel 的寫法,之後會在補上簡單的說明。
Graph 則是以流程圖的概念,把多個 kernel 串連起來,以做到更複雜的效果。而在執行的時候,Pixel Bender run-time 會依序完成每一個 kernel 的運算,直到跑完整個 graph 為止。不過目前 Pixel Bender Toolkit IDE 並不提供 graph 的編輯或預覽的功能,須要自己用純文字編輯器來謝;而且在 Flash Player 中也無法使用。
關於 Pixel Bender Graph 的寫法,之後會在補上簡單的說明。
而在檔案名稱的部分,Adobe 定義了三個副檔名:
pbk:以純文字方式儲存的 Pixel Bender Kernel 檔。 pbj:以 byte-code 形式存在的 Pixel Bender Kernel 檔,是給 Flash Player 用的 pbg:Pixel Bender 的 Graph 描述檔,也是純文字的形式。 如果要在 PhotoShop CS4 中使用已經寫好的 Pixel Bender 的話,只要在安裝過 plug-in 後,再把 pbk 或 pbg 檔複製到 Photoshop 安裝目錄下的“Pixel Bender Files”資料夾(C:\Program Files\Adobe\Adobe Photoshop CS4\Pixel Bender Files)就可以了~
在 After Effects 的話,則是要在“我的檔案”中的“Adobe\After Effects CS4”下建立一個叫做“Pixel Bender Plug-ins”的目錄,然後把 pbk 或 pbg 檔複製進去。(XP: C:\Documents and Settings\<username>\My Documents\Adobe\After Effects CS4\Pixel Bender Plug-ins\、VISTA: C:\Users\<username>\Documents\Adobe\After Effects CS4\Pixel Bender Plug-ins\)
而由於要在 Flash Player 里用,會牽涉到 ActionScript,比較麻煩,在這邊就先不提了。
使用原因
首先,Pixel Bender可以套用於點陣圖、填充以及其它可視對象,然後運行pixel shader作用在每一個像素。不是逐個逐個,而是一次過。沒錯,它是在同一時間計算一個區域內的所有像素值。它編譯後得到最佳化並且運行在獨立的進程,是獨立於Flash Player的。總而言之,相對於Flash里的圖形處理,pixel shader的執行效率是非常快的。不過Pixel Bender shader有一個缺點,就是它必須在外部使用Pixel Bender Toolkit來編寫並且使用基於C的Pixel Bender語言。在使用它之前必須編譯、保存、載入或綁定到你的Flash檔案里。工作量不少,而且又要學C語言。不過不用擔心,對於聰明的你來說這都是很簡單的。
在Flash里,使用Pixel Bender shader可以實現以下四點:
1. 自定義濾鏡:就像使用投影、模糊那些濾鏡一樣,你現在可以把ShaderFilter套用到任何顯示對象了。ShaderFilter是依賴著你在Pixel Bender Toolkit寫的shader。
2. 填充:在繪圖API(Application Programming Interface)里,你填充圖形時總是用純色、漸變色或點陣圖。現在你可以用beginShaderFill方法填充一個Pixel Bender shader了。
3. 混合模式:一個pixel shader可以用作混合模式,它將影響顯示對象的層疊顯示方式。要使用它,將Shader對象指派給前景顯示對象的 blendShader 屬性。
4. “Generic number crunching”:使用shader可以處理一組數據(包含複雜的數學運算),功能強、速度快。跟平常使用的shader不同,你傳遞二進制數據進去,用指定的算法處理這些數據,然後返回處理後的二進制數據。你所需要做的事情就是像傳入圖片一樣傳入二進制數據。”