2013年6月8日 星期六

[教學]第一個GLSL的範例


Music:Giardini di Mirò- A new start

雖然很早就知道GLSL的強大,可是礙於要學的東西實在太多,加上總覺得shader是另外一個陌生領域,中文參考資料又很少,所以一直放在那邊遲遲沒有研究...

不過因為這陣子都在跟蝦爸在研(鬼)究(混)的關係,所以總算有機會好的來研究一番,這也才發現其實Shader Language並沒有想像中的那麼難(只是入門的話),甚至感覺比P5或是Pd的寫作還更為容易。GLSL是透過GPU去運算,所以運算效能真的很強大,簡單撰寫幾行(不超過10行),就可以得到非常巨大的效果!!!(真的完全沒想到會是這樣阿~)。

vertex code

uniform float vel;
uniform vec3 noise;
varying vec4 color;

void main()
{  
 vec3 pos = gl_Vertex.xyz + noise3( gl_Vertex.xyz * vel * noise) ;
     gl_Position = gl_ModelViewProjectionMatrix * vec4(pos,1.0);
}

fragment code

uniform vec4 color;

void main()
{

 gl_FragColor = color;
} 

短短幾行程式碼,就能夠達到以往可能要數百行才能達到的效果,這真的仿佛進入奇異點的狀態!(抖)

Download example