1. 程式人生 > 其它 >基於Maxmspjitter的基礎【pixel shader】繪製模板Patcher

基於Maxmspjitter的基礎【pixel shader】繪製模板Patcher

間斷性接觸Maxmspjitter已經有6個年頭了,是時候總結一些常用的、基礎的知識以及它的應用,不過筆者自認為還是處於初學者階段,望高人多多指教。

開始

這一次就以jitter模組中通用處理影象節點jit.gl.pix來切入,寫一個基礎模板樣例供參考學習,針對編寫pixel shader的,如下:

節點很清楚,需要基於Opengl渲染的jit.world,還有jit.matrix作為jit.gl.pix的輸入源,也就是fragment片元資訊,畫素矩陣。需要注意的是,jit.gl.pix是需要有bang來時刻驅動的,因此這裡我直接沿用了jit.world節點上的{render draw bang}輸出口來驅動jit.gl.pix

,如圖示:

jit.world需要開啟訊號,即@enable屬性至1,,或是加一個toggle開關賦予也行,並且我賦floating也為1,讓其視窗永遠在上面浮現,最終的節點連線如下圖所示:

jit.gl.pix節點中隨便使用者使用節點連線還是文字編寫,我採用了文字編寫方式,即使用CodeBox模組【jitter強就強在可以兩者結合巢狀著程式設計】,如下:

其中的in 1out 1分別代表輸入的畫素陣列物件和輸出的畫素物件fragment color。其中的程式碼意圖在此不去展開。這樣一來world視窗中就可以見到最終渲染的畫面了。

結束

很顯然,Maxmspjitter提供給使用者一個視覺化的程式設計環境,用於創意程式設計,它極大可能的允許使用者自定義效果,幾乎可以在此框架上再搭建框架,功能性沒有任何侷限,同時又能大幅度降低開發學習的成本和是錯成本,一切變得“可看”、“可變”、“可愛”。當然這例是使用jit.gl.pix

,jitter同樣允許使用標準的GLSL語言來寫shader,這就是後話了。上述模板可以供初學者參考,特別是想學shader著色器的同學們,因為學shader不在於平臺,在於思維和規範,其實學任何語言都是這個道理,而jitter這個平臺可視且易改,並且直接面向創意程式設計,何樂而不為呢。
更多的shader知識和例子我們下次再聊!