Skip to main content

Class: LightsPlugin

@geenee/bodyrenderers-babylon.LightsPlugin

Plugin automatically adjusting lighting environment

Plugin controls intensities of all light sources in the rendered scene according to estimated level of brightness. Extends @geenee/bodyrenderers-common!BrightnessPlugin providing callback that automatically adjusts parameters of lights. On initialization or scene update it remembers props of all light sources as references corresponding to maximum brightness level. When brightness changes the plugin adjusts controlled props using the new brightness value as the factor. On upload() intensities of all controlled lights are restored.

Hierarchy

Constructors

constructor

new LightsPlugin(scene?, rangeMax?, rangeMin?, filterParams?)

Constructor

Parameters

NameTypeDefault valueDescription
scene?SceneundefinedScene controlled by the plugin
rangeMaxnumber0.85-
rangeMinnumber0.03-
filterParamsFilterParamsundefined-

Overrides

BrightnessPlugin.constructor

Properties

callback

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

Type declaration

▸ (brightness): void

Parameters
NameType
brightnessnumber
Returns

void

Inherited from

BrightnessPlugin.callback


filterParams

Protected filterParams: FilterParams

Parameters of reactive low-pass filter

Inherited from

BrightnessPlugin.filterParams


loaded

loaded: boolean

Loaded state

Inherited from

BrightnessPlugin.loaded


ordinal

ordinal: number

Ordinal number

Inherited from

BrightnessPlugin.ordinal


rangeMax

Protected rangeMax: number = 0.85

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

Inherited from

BrightnessPlugin.rangeMax


rangeMin

Protected rangeMin: number = 0.03

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

Inherited from

BrightnessPlugin.rangeMin


renderer

Protected Optional renderer: Renderer<any>

Renderer loaded the plugin

Inherited from

BrightnessPlugin.renderer


scene

Protected Optional scene: Scene

Scene controlled by the plugin

Methods

dispose

dispose(): void

Dispose video plugin

Returns

void

Inherited from

BrightnessPlugin.dispose


load

load(renderer): Promise<void>

Initialize plugin

Remembers intensities of all light sources in the current scene as reference maximums.

Parameters

NameTypeDescription
rendererRenderer<any>Renderer this plugin is attached to

Returns

Promise<void>

Promise resolving when initialization is finished

Overrides

BrightnessPlugin.load


resetScene

resetScene(): void

Reset lighting in the current scene

Updates reference/default intensities of all light sources in the current scene. This method can be used after a light is added to or removed from a scene to update the list of controlled sources.

Returns

void


setCallback

setCallback(callback): void

Set brightness change callback

Parameters

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

Returns

void

Inherited from

BrightnessPlugin.setCallback


setScene

setScene(scene?): void

Set/attach a scene to control its lighting

When a new scene is attached plugin remembers intensities of all light sources in it as reference maximums and use them as values corresponding to maximum brightness (1.0). In previously attached scene all intensities are restored.

Parameters

NameTypeDescription
scene?SceneScene controlled by the plugin

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

BrightnessPlugin.setupCamera


setupVideo

setupVideo(size): boolean

Set video size

Resize multilevel texture

Parameters

NameTypeDescription
sizeSizeResolution of input video

Returns

boolean

Inherited from

BrightnessPlugin.setupVideo


unload

unload(): void

Reset plugin

Restores intensities of all controlled lights.

Returns

void

Overrides

BrightnessPlugin.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

Inherited from

BrightnessPlugin.update