SMAAPass constructor

SMAAPass()

Implementation

SMAAPass() : super() {
	// render targets
	this.edgesRT = new RenderTarget( 1, 1,
      RenderTargetOptions({
        "depthBuffer": false,
        'type': HalfFloatType
      })
    );
	this.edgesRT.texture.name = 'SMAAPass.edges';

	this.weightsRT = new RenderTarget( 1, 1,
      RenderTargetOptions({
        "depthBuffer": false,
        'type': HalfFloatType
      })
    );
	this.weightsRT.texture.name = 'SMAAPass.weights';


	// final areaTextureImage = ImageElement(
    //   data: Uint8List.fromList(base64Decode(this.getAreaTexture().split(',').last)),
    //   width: 256,
    //   height: 256
    // );

	this.areaTexture = new Texture();
	this.areaTexture.name = 'SMAAPass.area';
	//this.areaTexture.image = areaTextureImage;
	this.areaTexture.minFilter = LinearFilter;
	this.areaTexture.generateMipmaps = false;
	this.areaTexture.flipY = false;
    this.areaTexture.needsUpdate = true;

	final searchTextureImage = ImageElement(
      data: Uint8List.fromList(base64Decode(this.getSearchTexture().split(',').last)),
      width: 256,
      height: 256
    );

	this.searchTexture = new Texture();
	this.searchTexture.name = 'SMAAPass.search';
	this.searchTexture.image = searchTextureImage;
	this.searchTexture.magFilter = NearestFilter;
	this.searchTexture.minFilter = NearestFilter;
	this.searchTexture.generateMipmaps = false;
	this.searchTexture.flipY = false;
    this.searchTexture.needsUpdate = true;

	// materials - pass 1
	this.uniformsEdges = UniformsUtils.clone( smaaEdgesShader['uniforms'] );

	this.materialEdges = ShaderMaterial.fromMap( {
		'defines': smaaEdgesShader['defines'],
		'uniforms': this.uniformsEdges,
		'vertexShader': smaaEdgesShader['vertexShader'],
		'fragmentShader': smaaEdgesShader['fragmentShader']
	} );

	// materials - pass 2

	this.uniformsWeights = UniformsUtils.clone( smaaWeightsShader['uniforms'] );

	this.uniformsWeights[ 'tDiffuse' ]['value'] = this.edgesRT.texture;
	this.uniformsWeights[ 'tArea' ]['value'] = this.areaTexture;
	this.uniformsWeights[ 'tSearch' ]['value'] = this.searchTexture;

	this.materialWeights = ShaderMaterial.fromMap( {
		'defines': smaaWeightsShader['defines'],
		'uniforms': this.uniformsWeights,
		'vertexShader': smaaWeightsShader['vertexShader'],
		'fragmentShader': smaaWeightsShader['fragmentShader']
	} );

	// materials - pass 3

	this.uniformsBlend = UniformsUtils.clone( smaaBlendShader['uniforms'] );
	this.uniformsBlend[ 'tDiffuse' ]['value'] = this.weightsRT.texture;

	this.materialBlend = new ShaderMaterial.fromMap( {
		'uniforms': this.uniformsBlend,
		'vertexShader': smaaBlendShader['vertexShader'],
		'fragmentShader': smaaBlendShader['fragmentShader']
	} );

	this.fsQuad = new FullScreenQuad();
}