Skip to content

@tmrw-realityos/charm


@tmrw-realityos/charm / LowlevelEngine

Class: LowlevelEngine

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:483

Extends

Constructors

new LowlevelEngine()

new LowlevelEngine(): LowlevelEngine

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:519

Returns

LowlevelEngine

Overrides

RendererInterface.constructor

Properties

_environment?

protected optional _environment: HDREnvironment

Defined in: packages/charm/src/graphics/rendererInterface.ts:192

Inherited from

RendererInterface._environment


accelerationStructure

protected accelerationStructure: AccelerationStructure

Defined in: packages/charm/src/graphics/rendererInterface.ts:206

Inherited from

RendererInterface.accelerationStructure


accelerationStructureMustRebuild

protected accelerationStructureMustRebuild: boolean = false

Defined in: packages/charm/src/graphics/rendererInterface.ts:208

Inherited from

RendererInterface.accelerationStructureMustRebuild


backend

backend: LowLevelBackend

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:484

Overrides

RendererInterface.backend


basePath

basePath: string = ""

Defined in: packages/charm/src/graphics/rendererInterface.ts:184

Inherited from

RendererInterface.basePath


cameraRP?

optional cameraRP: NativeCameraRP

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:488


canvas?

optional canvas: HTMLCanvasElement

Defined in: packages/charm/src/graphics/rendererInterface.ts:189

Inherited from

RendererInterface.canvas


debug

debug: boolean = true

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:502


defaultEmissiveTexture?

optional defaultEmissiveTexture: NativeTextureRP

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:499


defaultSampler?

optional defaultSampler: NativeTextureSamplerRP

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:501


diagnosticsMatInstances

diagnosticsMatInstances: Map<number, NativeMaterialInstanceRP>

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:496


draw?

optional draw: DrawInterface

Defined in: packages/charm/src/graphics/rendererInterface.ts:188

Inherited from

RendererInterface.draw


frameIndex

frameIndex: number = 0

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:511


fx

fx: boolean = false

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:500


lastFrameRenderables

lastFrameRenderables: nativeEntityRP[] = []

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:505


lastRenderedCamera?

optional lastRenderedCamera: Camera

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:504


lastRenderedScene?

optional lastRenderedScene: Scene

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:503


loadedGLTFs

loadedGLTFs: Map<string, GLTFInfo>

Defined in: packages/charm/src/graphics/rendererInterface.ts:203

Inherited from

RendererInterface.loadedGLTFs


loadingGLTFs

loadingGLTFs: Map<string, LoadedGLTFCallback[]>

Defined in: packages/charm/src/graphics/rendererInterface.ts:204

Inherited from

RendererInterface.loadingGLTFs


matBundle

matBundle: URL

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:509


materialInstanceRegistry

materialInstanceRegistry: Map<number, NativeMaterialInstanceRP>

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:495


materialProvider?

optional materialProvider: NativeMaterialProviderRP

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:497


nativeEngineRP?

optional nativeEngineRP: NativeEngineRP

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:485


onRenderGizmos()?

optional onRenderGizmos: (renderer) => void

Defined in: packages/charm/src/graphics/rendererInterface.ts:210

Parameters

renderer

RendererInterface

Returns

void

Inherited from

RendererInterface.onRenderGizmos


outlineMaterial

outlineMaterial: Material

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:512


outlineSceneRP?

optional outlineSceneRP: NativeSceneRP

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:492


outlineViewRP?

optional outlineViewRP: NativeViewRP

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:491


plane?

optional plane: Mesh

Defined in: packages/charm/src/graphics/rendererInterface.ts:185

Inherited from

RendererInterface.plane


planeXY?

optional planeXY: Mesh

Defined in: packages/charm/src/graphics/rendererInterface.ts:186

Inherited from

RendererInterface.planeXY


rendererRP?

optional rendererRP: NativeRendererRP

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:487


renderOptions

renderOptions: SceneRenderOptions

Defined in: packages/charm/src/graphics/rendererInterface.ts:200

Inherited from

RendererInterface.renderOptions


samplerCache

samplerCache: Map<number, NativeTextureSamplerRP>

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:498


sceneRP?

optional sceneRP: NativeSceneRP

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:489


skyboxRP?

optional skyboxRP: NativeSkyboxRP

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:490


tinyGltf?

optional tinyGltf: TinyGltf

Defined in: packages/charm/src/graphics/rendererInterface.ts:202

Inherited from

RendererInterface.tinyGltf


tmrwRooms?

optional tmrwRooms: MainModule

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:493


transparent

transparent: boolean = false

Defined in: packages/charm/src/graphics/rendererInterface.ts:191

Inherited from

RendererInterface.transparent


viewMode

viewMode: eViewModes = eViewModes.FINAL

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:494


viewRP?

optional viewRP: NativeViewRP

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:486

Accessors

environment

Set Signature

set environment(env): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:1986

Parameters
env

HDREnvironment

Returns

void

Overrides

RendererInterface.environment

Methods

clearScene()

clearScene(): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:1466

Returns

void


configureCanvas()

configureCanvas(): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:528

Returns

void

Overrides

RendererInterface.configureCanvas


createMaterialInstance()

createMaterialInstance(material, vertexBuffer): NativeMaterialInstanceRP

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:1242

Create a native material from a scene material

Parameters

material

Material

vertexBuffer

NativeVertexBufferRP

Returns

NativeMaterialInstanceRP


createMaterialProvider()

createMaterialProvider(matBundle): Promise<NativeMaterialProviderRP>

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:648

Create material provider from matz bundle

Parameters

matBundle

path to matz file

string | URL

Returns

Promise<NativeMaterialProviderRP>

new material provider


createNativeMesh()

createNativeMesh(mesh, material): nativeEntityRP

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:1152

currently it creates Entities, no meshes (like renderable)

Parameters

mesh

Mesh

material

Material

Returns

nativeEntityRP


destroy()

destroy(): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:530

Destroy all allocated resources

Returns

void

Overrides

RendererInterface.destroy


destroyGLTF()

destroyGLTF(url): void

Defined in: packages/charm/src/graphics/rendererInterface.ts:308

Frees from memory

Parameters

url

string

Returns

void

Inherited from

RendererInterface.destroyGLTF


getAmbientOcclusionOptions()

getAmbientOcclusionOptions(): Partial

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:856

Returns

Partial


getAmbientOcclutionSSCTOptions()

getAmbientOcclutionSSCTOptions(): Partial

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:834

Returns

Partial


getBloomOptions()

getBloomOptions(): Partial

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:704

Returns

Partial


getDepthOfFieldBokehOptions()

getDepthOfFieldBokehOptions(): Partial

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:786

Returns

Partial


getDepthOfFieldOptions()

getDepthOfFieldOptions(): Partial

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:767

Returns

Partial


getDitheringOptions()

getDitheringOptions(): Partial

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:815

Returns

Partial


getDynamicResolutionOptions()

getDynamicResolutionOptions(): Partial

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:725

Returns

Partial


getFogOptions()

getFogOptions(): Partial

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:751

Returns

Partial


getFramebufferSize()

getFramebufferSize(): vec2

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:1696

Returns

vec2

Overrides

RendererInterface.getFramebufferSize


getGuardBandOptions()

getGuardBandOptions(): object

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:737

Returns

object

enabled?

optional enabled: boolean


getLightingOptions()

getLightingOptions(): Partial

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:959

Returns

Partial


getMultisampleAntialiasingOptions()

getMultisampleAntialiasingOptions(): Partial

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:878

Returns

Partial


getPlaneMesh()

getPlaneMesh(): Mesh

Defined in: packages/charm/src/graphics/rendererInterface.ts:356

static mesh

Returns

Mesh

Inherited from

RendererInterface.getPlaneMesh


getPostProcessing()

getPostProcessing(): boolean

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:682

Returns

boolean


getScreenspaceReflectionsOptions()

getScreenspaceReflectionsOptions(): Partial

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:917

Returns

Partial


getSoftShadowsOptions()

getSoftShadowsOptions(): Partial

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:943

Returns

Partial


getSupportedViewModes()

getSupportedViewModes(): string[]

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:1925

Returns

string[]

Overrides

RendererInterface.getSupportedViewModes


getTemporalAntiAliasingOptions()

getTemporalAntiAliasingOptions(): Partial

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:897

Returns

Partial


getTexture()

getTexture(name): undefined | Texture

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:968

Parameters

name

string

Returns

undefined | Texture

Overrides

RendererInterface.getTexture


getVignetteOptions()

getVignetteOptions(): Partial

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:799

Returns

Partial


getVSMShadowsOptions()

getVSMShadowsOptions(): Partial

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:930

Returns

Partial


init()

init(nativeCanvas): Promise<void>

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:547

Parameters

nativeCanvas

HTMLCanvasElement

Returns

Promise<void>


internalDestroyGLTF()

internalDestroyGLTF(_info): void

Defined in: packages/charm/src/graphics/rendererInterface.ts:326

Parameters

_info

GLTFInfo

Returns

void

Inherited from

RendererInterface.internalDestroyGLTF


internalLoadGLTF()

internalLoadGLTF(url, gltf, options): undefined | GLTFInfo

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:1867

Parameters

url

string

gltf

GlTf

options

GLTFLoadingOptions

Returns

undefined | GLTFInfo

See

RendererInterface

Overrides

RendererInterface.internalLoadGLTF


loadEnvironment()

loadEnvironment(env): Promise<void>

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:1407

Parameters

env

Environment

Returns

Promise<void>


loadGLTF()

loadGLTF(url, options?, force?): Promise<undefined | GLTFInfo>

Defined in: packages/charm/src/graphics/rendererInterface.ts:256

Loads a GLTF using a cache to avoid loading twice the same GLTF

Parameters

url

string

options?

GLTFLoadingOptions

force?

boolean

Returns

Promise<undefined | GLTFInfo>

Inherited from

RendererInterface.loadGLTF


loadGLTFFromBinary()

loadGLTFFromBinary(data, options?, url?): Promise<undefined | GLTFInfo>

Defined in: packages/charm/src/graphics/rendererInterface.ts:295

Loads a GLTF from a Binary array, in case it was dragged from hard drive

Parameters

data

ArrayBuffer

options?

GLTFLoadingOptions

url?

string = "none"

Returns

Promise<undefined | GLTFInfo>

Inherited from

RendererInterface.loadGLTFFromBinary


loadImage()

loadImage(path): Promise<HTMLImageElement>

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:1850

Helper to async load an image

Parameters

path

string

image path

Returns

Promise<HTMLImageElement>

promise


loadScene()

loadScene(scene): Promise<void>

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:981

Parameters

scene

Scene

Returns

Promise<void>


newMesh()

newMesh(): Mesh

Defined in: packages/charm/src/graphics/rendererInterface.ts:351

Returns

Mesh

Inherited from

RendererInterface.newMesh


pickDepths()

pickDepths(pos): Promise<undefined | Float32Array<ArrayBufferLike>>

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:1954

Parameters

pos

vec2[]

Returns

Promise<undefined | Float32Array<ArrayBufferLike>>

Overrides

RendererInterface.pickDepths


pickScene()

pickScene(x, y, layers, pos?, clipPos?): Promise<undefined | Node>

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:1880

Returns the node under a certain coordinate of the mouse. This function is async as it will be resolved in the next frame.

Parameters

x

number

y

number

layers

number = 0xff

pos?

vec3

clipPos?

vec3

Returns

Promise<undefined | Node>

Overrides

RendererInterface.pickScene


preloadTexture()

preloadTexture(url, name?): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:972

Parameters

url

string

name?

string

Returns

void

Overrides

RendererInterface.preloadTexture


render()

render(scene, camera): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:1782

Renders a scene from a point of view

Parameters

scene

Scene

camera

Camera

Returns

void

Overrides

RendererInterface.render


renderablesToNative()

renderablesToNative(renderables): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:1701

Parameters

renderables

nativeEntityRP[]

Returns

void


resize()

resize(logical, device): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:2066

Parameters

logical
height

number

width

number

device
height

number

width

number

Returns

void

Overrides

RendererInterface.resize


setAmbientOcclusionOptions()

setAmbientOcclusionOptions(options): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:838

Parameters

options

Partial

Returns

void


setAmbientOcclutionSSCTOptions()

setAmbientOcclutionSSCTOptions(options): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:825

Parameters

options

Partial

Returns

void


setBloomOptions()

setBloomOptions(options): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:686

Parameters

options

Partial

Returns

void


setDepthOfFieldBokehOptions()

setDepthOfFieldBokehOptions(options): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:777

Parameters

options

Partial

Returns

void


setDepthOfFieldOptions()

setDepthOfFieldOptions(options): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:755

Parameters

options

Partial

Returns

void


setDitheringOptions()

setDitheringOptions(options): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:803

Parameters

options

Partial

Returns

void


setDynamicResoultionOptions()

setDynamicResoultionOptions(options): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:712

Parameters

options

Partial

Returns

void


setEnvironment()

setEnvironment(env): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:1991

Parameters

env

HDREnvironment

Returns

void

Overrides

RendererInterface.setEnvironment


setFogOptions()

setFogOptions(options): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:741

Parameters

options

Partial

Returns

void


setGuardBandOptions()

setGuardBandOptions(options): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:733

Parameters

options
enabled?

boolean

Returns

void


setLightingOptions()

setLightingOptions(options): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:947

Parameters

options

Partial

Returns

void


setMultisampleAntiAliasingOptions()

setMultisampleAntiAliasingOptions(options): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:869

Parameters

options

Partial

Returns

void


setPostProcessing()

setPostProcessing(enabled): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:677

Parameters

enabled

boolean

Returns

void


setScreenspaceReflectionsOptions()

setScreenspaceReflectionsOptions(options): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:908

Parameters

options

Partial

Returns

void


setSoftShadowsOptions()

setSoftShadowsOptions(options): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:934

Parameters

options

Partial

Returns

void


setTemporalAntiAliasingOptions()

setTemporalAntiAliasingOptions(options): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:882

Parameters

options

Partial

Returns

void


setTonemapping()

setTonemapping(): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:663

Returns

void


setViewMode()

setViewMode(node, mode): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:1752

Set debug view mode recursively for a node

Parameters

node

Node

mode

eViewModes

Returns

void


setVignetteOptions()

setVignetteOptions(options): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:790

Parameters

options

Partial

Returns

void


setVSMShadowsOptions()

setVSMShadowsOptions(options): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:921

Parameters

options

Partial

Returns

void


showTexture()

showTexture(): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:2085

Returns

void

Overrides

RendererInterface.showTexture


updateNativeMesh()

updateNativeMesh(mesh, requireTangents): object

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:993

Parameters

mesh

Mesh

requireTangents

boolean

Returns

object

indexBuffer

indexBuffer: NativeIndexBufferRP

vertexBuffer

vertexBuffer: NativeVertexBufferRP


updateRenderables()

updateRenderables(node, camera, renderables): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:1476

Frustum cull renderables and update transform and material

Parameters

node

Node

camera

Camera

renderables

nativeEntityRP[]

Returns

void


updateRenderOptions()

updateRenderOptions(): void

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:1723

Returns

void

Events

renderAlpha

renderAlpha: ROSEvent<EventHandler<any[]>>

Defined in: packages/charm/src/graphics/lowlevelEngine.ts:517

Overrides

RendererInterface.renderAlpha