API

Interface AbstractEngineOptions

Interface defining initialization parameters for AbstractEngine class

interface AbstractEngineOptions {
    adaptToDeviceRatio?: boolean;
    antialias?: boolean;
    audioEngine?: boolean;
    audioEngineOptions?: IAudioEngineOptions;
    canvasTabIndex?: number;
    deterministicLockstep?: boolean;
    doNotHandleContextLost?: boolean;
    doNotHandleTouchAction?: boolean;
    limitDeviceRatio?: number;
    lockstepMaxSteps?: number;
    premultipliedAlpha?: boolean;
    stencil?: boolean;
    timeStep?: number;
    useExactSrgbConversions?: boolean;
    useHighPrecisionMatrix?: boolean;
    useLargeWorldRendering?: boolean;
}

Hierarchy (View Summary)

Index
adaptToDeviceRatio?: boolean

Defines whether to adapt to the device's viewport characteristics (default: false)

antialias?: boolean

Defines whether MSAA is enabled on the canvas.

audioEngine?: boolean

Defines if webaudio should be initialized as well

audioEngineOptions?: IAudioEngineOptions

Specifies options for the audio engine

canvasTabIndex?: number

Defines the tab index to set on the rendering canvas (default: 1). Any value >= 0 makes the canvas focusable so it can capture keyboard events and places it in the document's sequential tab order (0 follows DOM order, a positive value forces an explicit order). Use -1 to keep the canvas focusable programmatically (via focus()) while excluding it from the tab order.

deterministicLockstep?: boolean

Defines if animations should run using a deterministic lock step

doNotHandleContextLost?: boolean

Defines that engine should ignore context lost events If this event happens when this parameter is true, you will have to reload the page to restore rendering

doNotHandleTouchAction?: boolean

Defines that engine should ignore modifying touch action attribute and style If not handle, you might need to set it up on your side for expected touch devices behavior.

limitDeviceRatio?: number

Defines if the engine should no exceed a specified device ratio

lockstepMaxSteps?: number

Defines the maximum steps to use with deterministic lock step mode

premultipliedAlpha?: boolean

Defines whether the canvas should be created in "premultiplied" mode (if false, the canvas is created in the "opaque" mode) (true by default)

stencil?: boolean

Defines whether the stencil buffer should be enabled.

timeStep?: number

Defines the seconds between each deterministic lock step

useExactSrgbConversions?: boolean

True if the more expensive but exact conversions should be used for transforming colors to and from linear space within shaders. Otherwise, the default is to use a cheaper approximation.

useHighPrecisionMatrix?: boolean

Make the matrix computations to be performed in 64 bits instead of 32 bits. False by default. Note that setting useLargeWorldRendering will also set high precision matrices

useLargeWorldRendering?: boolean

LargeWorldRendering helps avoid floating point imprecision of rendering large worlds by

  1. Forcing highPrecisionMatrices (matrix computations in 64 bits instead of 32)
  2. Enabling floatingOriginMode in all scenes -- offsetting position-related uniform and attribute values before passing to shader so that active camera is centered at origin and world is offset by active camera position

NOTE that if this mode is set during engineCreation, all scenes will have floatingOrigin offset and you do not need to send floatingOriginMode option to each scene creation. If you'd like to have only specific scenes using the offset logic, you can set the flag on those scenes directly -- however, to achieve proper large world rendering, you must also set the useHighPrecisionMatrix option on engine.