http://image.itmedia.co.jp/ait/articles/1211/26/sample02.png
添付↑の画像のような波のシェーダを書きたいのですが、それ以前に、外部から読み込む画像がフレーム毎に更新され、思い通りのシェーダがかけずにいます。
フラグメントシェーダ↓
uniform sampler2DRect image; uniform float timer; //Time uniform int chukan; //画面の中心(xyは同じ大きさ、正方形とする) varying vec3 pos;//pix void main (void){ float _x =pos.x/(chukan*2)-0.5; float _y =-(pos.y/(chukan*2)-0.5); float dist = sqrt(_x*_x+_y*_y); float _sinha=sin(timer); vec2 texCoord = vec2(pos.x,pos.y); //vec4 col = texture2DRect(image,texCoord); vec4 col_s = texture2DRect(image,texCoord + vec2(_x,_y)); col = col_s; gl_FragColor.rgba = col.rgba; }
最初の部分のuniform sampler2DRect image; は外部から読み込んだピクセル情報でして、ためしにシェーダを適応した場合、x,y位置が上書きされ、端っこの部分が繰り返されてしまいます
(_xで例えると、ピクセルのx情報が-0.5から0.5の値に変換され、そのぶんtexCoordにプラスしたが、外部から読み込むimageは元の画像が上書きされてしまう)
あなたの回答
tips
プレビュー