Skip to main content

Class: BrightnessPlugin

@geenee/bodyrenderers-common.BrightnessPlugin

Brightness estimation plugin

Plugin estimates parameters of lighting (brightness) observed in the current image and calls the provided callback with these parameters. This plugin can be used for automatic adjustment of intensities of lights on the scene, for example in callback user can scale intensity properties of lights and environment map according to estimated brightness. One can set output range, estimated value will not go below the minimum and [min..max] range will be scaled to [min..1.0]. Adaptive low pass smoothing is applied to the result.

Hierarchy

  • Plugin<any>

    BrightnessPlugin

Constructors

constructor

new BrightnessPlugin(callback?, rangeMax?, rangeMin?, filterParams?)

Constructor

Parameters

NameTypeDefault valueDescription
callback?(brightness: number) => voidundefinedMethod when brightness has changed
rangeMaxnumber0.5Maximum brightness, range scales to [min..1.0]
rangeMinnumber0.1Minimum brightness, range scales to [min..1.0]
filterParamsFilterParamsundefinedParameters of reactive low-pass filter

Overrides

Plugin.constructor

Properties

callback

Protected Optional callback: (brightness: number) => void

Type declaration

▸ (brightness): void

Method when brightness has changed

Parameters
NameType
brightnessnumber
Returns

void


filterParams

Protected filterParams: FilterParams

Parameters of reactive low-pass filter


loaded

loaded: boolean

Loaded state

Inherited from

Plugin.loaded


ordinal

ordinal: number

Ordinal number

Inherited from

Plugin.ordinal


rangeMax

Protected rangeMax: number = 0.5

Maximum brightness, range scales to [min..1.0]


rangeMin

Protected rangeMin: number = 0.1

Minimum brightness, range scales to [min..1.0]


renderer

Protected Optional renderer: Renderer<any>

Renderer loaded the plugin

Inherited from

Plugin.renderer

Methods

dispose

dispose(): void

Dispose video plugin

Returns

void

Inherited from

Plugin.dispose


load

load(renderer): Promise<void>

Initialize plugin

Initializes resources for the brightness estimation. Acquires webgl context of the main ShaderRenderer, allocates multilevel texture for the input image.

Parameters

NameTypeDescription
rendererRenderer<any>Renderer this plugin is attached to

Returns

Promise<void>

Promise resolving when initialization is finished

Overrides

Plugin.load


setCallback

setCallback(callback): void

Set brightness change callback

Parameters

NameTypeDescription
callbackundefined | (brightness: number) => voidMethod when brightness has changed

Returns

void


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

Plugin.setupCamera


setupVideo

setupVideo(size): boolean

Set video size

Resize multilevel texture

Parameters

NameTypeDescription
sizeSizeResolution of input video

Returns

boolean

Overrides

Plugin.setupVideo


unload

unload(): void

Reset plugin

Releases all resources and instances created in load().

Returns

void

Overrides

Plugin.unload


update

update(result, stream): Promise<void>

Update

Plugin estimates current brightness and calls provided callback.

Parameters

NameTypeDescription
resultanyResults of video processing
streamHTMLCanvasElementCaptured video frame

Returns

Promise<void>

Promise resolving when update is finished

Overrides

Plugin.update