Im trying to port this shadertoy shadertoy to pixi.js.
Here is my shader:
uniform vec3 iResolution;
uniform float iTime;
uniform float iTimeDelta;
uniform float iFrameRate;
uniform int iFrame;
uniform float iChannelTime[4];
uniform vec3 iChannelResolution[4];
uniform vec4 iMouse;
uniform vec4 iDate;
varying vec2 vTextureCoord;
uniform sampler2D uSampler;
uniform sampler2D noise;
#define T texture2D(noise,(s*p.zw+ceil(s*p.x))/2e2).y/(s+=s)*4.
void main(){
vec4 O;
vec2 x;
vec4 p,d=vec4(.8,0,x/iResolution.y-.8),c=vec4(.6,.7,d);
O=c-d.w;
for(float f,s,t=2e2+sin(dot(x,x));--t>0.;p=.05*t*d)
p.xz+=iTime,
s=2.,
f=p.w+1.-T-T-T-T,
f<0.?O+=(O-1.-f*c.zyxw)*f*.4:O;
}
and this is my javascript:
const GLOBAL_WIDTH = window.innerWidth;
const GLOBAL_HEIGHT = window.innerHeight;
var app = new PIXI.Application({ width: GLOBAL_WIDTH, height: GLOBAL_HEIGHT, resolution: 1, backgroundAlpha: 1, antialias: true });
document.body.appendChild(app.view);
PIXI.Assets.load('perlin.jpg').then(onAssetsLoaded);
var filter = null;
var totalTime = 0;
var fragShader = document.getElementById('fragShader').innerHTML;
function onAssetsLoaded(perlin) {
perlin.baseTexture.wrapMode = PIXI.WRAP_MODES.REPEAT;
perlin.baseTexture.mipmap = false;
perlin.width = perlin.height = 200;
filter = new PIXI.Filter(null, fragShader, {
iResolution: [GLOBAL_WIDTH, GLOBAL_HEIGHT, 1.0],
iTime: 0.0,
noise: perlin
});
app.stage.filterArea = app.renderer.screen;
app.stage.filters = [filter];
app.ticker.add((delta) => {
filter.uniforms.iTime = totalTime;
totalTime += delta / 60;
});
}
Im getting this error:
ERROR: 0:27: 'for' : Invalid init declaration