Skip to main content

Class: BgBlurPlugin

@geenee/bodyrenderers-common.BgBlurPlugin

Background blur plugin

@geenee/armature!ShaderPlugin blurring background region of an image. Segmentation mask defines image foreground that stays untouched. Plugin depends on @geenee/bodyrenderers-common!MaskUploadPlugin that must be attached to the renderer to upload mask buffer in texture. One may utilize a @geenee/bodyrenderers-common!MaskUpscalePlugin providing higher resolution segmentation mask that significantly increases accuracy of patching and reduces the size of the patch region. Other mask post-processing plugins may be used to fine-tune for particular use case.

Hierarchy

Constructors

constructor

new BgBlurPlugin(smooth?, thresh?)

Constructor

Parameters

NameTypeDefault valueDescription
smoothnumber11.0Smoothing strength
threshnumber0.55Background threshold

Overrides

ShaderPlugin.constructor

Properties

fragSrc

Protected Optional fragSrc: string

Code of fragment shader (copy shader by default)

Inherited from

ShaderPlugin.fragSrc


inputs

Protected Optional inputs: string[]

Shader texture inputs (names of sampler uniforms)

Inherited from

ShaderPlugin.inputs


loaded

loaded: boolean

Loaded state

Inherited from

ShaderPlugin.loaded


ordinal

ordinal: number

Ordinal number

Inherited from

ShaderPlugin.ordinal


renderer

Protected Optional renderer: Renderer<SegmentationResult>

Renderer loaded the plugin

Inherited from

ShaderPlugin.renderer


shader

Protected Optional shader: ShaderProgram

Rendering shader

Inherited from

ShaderPlugin.shader


shaderCtx

Protected Optional shaderCtx: WebGL2RenderingContext

Rendering context

Inherited from

ShaderPlugin.shaderCtx


size

Protected size: Size

Image size

Inherited from

ShaderPlugin.size


smooth

Protected smooth: number = 11.0

Smoothing strength


uniforms

Protected Optional uniforms: Object

Shader uniforms as name-type map object

Index signature

▪ [key: string]: UniformType

Inherited from

ShaderPlugin.uniforms


vertSrc

Protected Optional vertSrc: string

Vertex shader source (copy shader by default)

Inherited from

ShaderPlugin.vertSrc

Methods

dispose

dispose(): void

Dispose video plugin

Returns

void

Inherited from

ShaderPlugin.dispose


load

load(renderer): Promise<void>

Initialize plugin

Initializes resources required for shader effect.

Parameters

NameTypeDescription
rendererRenderer<SegmentationResult>Renderer this plugin is attached to

Returns

Promise<void>

Promise resolving when initialization is finished

Overrides

ShaderPlugin.load


process

process(result, input): Promise<boolean>

Process the image

Applies background blur filter.

Parameters

NameTypeDescription
resultSegmentationResultResults of video processing
inputWebGLTextureCurrent image texture

Returns

Promise<boolean>

True on success, false otherwise

Overrides

ShaderPlugin.process


setupCamera

setupCamera(ratio, angle): void

Set camera parameters

Could be overridden to adjust plugin's pipeline.

Parameters

NameTypeDescription
rationumberAspect ration of input video
anglenumberVertical field of view in radians

Returns

void

Inherited from

ShaderPlugin.setupCamera


setupVideo

setupVideo(size): void

Set video size

Adjusts shader and texture to a new size.

Parameters

NameTypeDescription
sizeSizeResolution of input video

Returns

void

Overrides

ShaderPlugin.setupVideo


unload

unload(): void

Reset plugin

Releases all resources and instances created in load().

Returns

void

Overrides

ShaderPlugin.unload


update

update(result, stream): Promise<void>

Update the image

Main method implementing webgl shader effect or filter. ShaderRenderer keeps track of the current iamge texture that will be be rendered. ShaderPlugin uses the current texture as input and writes results to ShaderPlugin#output. ShaderPlugin#output becomes new current texture of ShaderRenderer. This way all ShaderPlugins attached to renderer organize a chain of effects applied on top of each other. Method process() implements shader effect itself, it's intended to be overridden by effect authors.

Parameters

NameTypeDescription
resultSegmentationResultResults of video processing
streamHTMLCanvasElementCaptured video frame

Returns

Promise<void>

Promise resolving when update is finished

Inherited from

ShaderPlugin.update