2011年6月22日水曜日

Quartz Composer / Fragment Shader(GLSL Shaderパッチ)をいじってみた

動機:
nobokoさんこのpostをみてこちらの動画(FORTUNE - Staring At The Ice Melt (album teaser BULLY))を見て,「GLSL ShaderパッチのFragment Shaderでそれっぽくできないかしら?」と思いちょっとやってみた.


やってみた:
Fragment Shaderのコードとしてはこんなかんじ.
Vertex Shaderはそのまま.
uniform sampler2D texture;
uniform float i;
uniform float direction;
void main()
{
vec4 c= texture2D(texture, gl_TexCoord[0].xy);

if (direction<0.5) {
if (i > gl_TexCoord[0].x) {
c= texture2D(texture, vec2(i, gl_TexCoord[0].y));
}
}
else {
if (i > gl_TexCoord[0].y) {
c= texture2D(texture, vec2(gl_TexCoord[0].x, i));
}
}
gl_FragColor= c;
}


float iは0-1の間の値
float directionは0.5を境界に縦と横の切り替え(boolでよかったのでは…。)


結果:
っぽい?

0 件のコメント: