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(WebGLRenderer renderer, WebGLRenderTarget writeBuffer, WebGLRenderTarget readBuffer,{double? deltaTime, bool? maskActive}) {
  if (maskActive == true) renderer.state.buffers['stencil'].setTest(false);

  // Render quad with blured scene into texture (convolution pass 1)

  fsQuad.material = materialConvolution;

  convolutionUniforms['tDiffuse']["value"] = readBuffer.texture;
  convolutionUniforms['uImageIncrement']["value"] = BloomPass.blurX;

  renderer.setRenderTarget(renderTargetX);
  renderer.clear();
  fsQuad.render(renderer);

  // Render quad with blured scene into texture (convolution pass 2)

  convolutionUniforms['tDiffuse']["value"] = renderTargetX.texture;
  convolutionUniforms['uImageIncrement']["value"] = BloomPass.blurY;

  renderer.setRenderTarget(renderTargetY);
  renderer.clear();
  fsQuad.render(renderer);

  // Render original scene with superimposed blur to texture

  fsQuad.material = materialCopy;

  uniforms['tDiffuse']["value"] = renderTargetY.texture;

  if (maskActive == true) renderer.state.buffers['stencil'].setTest(true);

  renderer.setRenderTarget(readBuffer);
  if (clear) renderer.clear();
  fsQuad.render(renderer);
}