render method

  1. @override
void render(
  1. WebGLRenderer renderer,
  2. WebGLRenderTarget writeBuffer,
  3. WebGLRenderTarget readBuffer, {
  4. double? deltaTime,
  5. bool? maskActive,
})
override

Implementation

@override
void render(renderer, writeBuffer, readBuffer,{double? deltaTime, bool? maskActive}) {
  uniforms['tDiffuse']["value"] = readBuffer.texture;
  uniforms['seed']["value"] = math.Random().nextDouble(); //default seeding
  uniforms['byp']["value"] = 0;

  if (curF % randX == 0 || goWild == true) {
    uniforms['amount']["value"] = math.Random().nextDouble() / 30;
    uniforms['angle']["value"] = randFloat(-math.pi, math.pi);
    uniforms['seed_x']["value"] = randFloat(-1, 1);
    uniforms['seed_y']["value"] = randFloat(-1, 1);
    uniforms['distortion_x']["value"] = randFloat(0, 1);
    uniforms['distortion_y']["value"] = randFloat(0, 1);
    curF = 0;
    generateTrigger();
  } else if (curF % randX < randX / 5) {
    uniforms['amount']["value"] = math.Random().nextDouble() / 90;
    uniforms['angle']["value"] = randFloat(-math.pi, math.pi);
    uniforms['distortion_x']["value"] = randFloat(0, 1);
    uniforms['distortion_y']["value"] = randFloat(0, 1);
    uniforms['seed_x']["value"] = randFloat(-0.3, 0.3);
    uniforms['seed_y']["value"] = randFloat(-0.3, 0.3);
  }
  else if (goWild == false) {
    uniforms['byp']["value"] = 1;
  }

  curF++;

  if (renderToScreen) {
    renderer.setRenderTarget(null);
    fsQuad.render(renderer);
  } else {
    renderer.setRenderTarget(writeBuffer);
    if (clear) renderer.clear();
    fsQuad.render(renderer);
  }
}