Skip to content

@tmrw-realityos/charm


@tmrw-realityos/charm / LowlevelEngine

Class: LowlevelEngine

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

Extends

Constructors

Constructor

new LowlevelEngine(): LowlevelEngine

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

Returns

LowlevelEngine

Overrides

RendererInterface.constructor

Properties

_environment?

protected optional _environment: HDREnvironment

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

Inherited from

RendererInterface._environment


accelerationStructure

protected accelerationStructure: AccelerationStructure

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

Inherited from

RendererInterface.accelerationStructure


accelerationStructureMustRebuild

protected accelerationStructureMustRebuild: boolean = false

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

Inherited from

RendererInterface.accelerationStructureMustRebuild


backend

backend: LowLevelBackend

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

Overrides

RendererInterface.backend


basePath

basePath: string = ""

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

Inherited from

RendererInterface.basePath


cameraRP?

optional cameraRP: NativeCameraRP

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


canvas?

optional canvas: HTMLCanvasElement

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

Inherited from

RendererInterface.canvas


debug

debug: boolean = true

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


defaultEmissiveTexture?

optional defaultEmissiveTexture: NativeTextureRP

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


defaultSampler?

optional defaultSampler: NativeTextureSamplerRP

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


diagnosticsMatInstances

diagnosticsMatInstances: Map<number, NativeMaterialInstanceRP>

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


draw?

optional draw: DrawInterface

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

Inherited from

RendererInterface.draw


drawDebugInfo

drawDebugInfo: boolean = false

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

Inherited from

RendererInterface.drawDebugInfo


frameIndex

frameIndex: number = 0

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


fx

fx: boolean = true

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


gltfToNodes

gltfToNodes: Map<string, LowlevelGltfToNodes>

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


lastFrameActors

lastFrameActors: RenderActor[] = []

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


lastFrameRenderables

lastFrameRenderables: nativeEntityRP[] = []

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


lastRenderedCamera?

optional lastRenderedCamera: Camera

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


lastRenderedScene?

optional lastRenderedScene: Scene

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


loadedGLTFs

loadedGLTFs: Map<string, GLTFInfo>

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

Inherited from

RendererInterface.loadedGLTFs


loadingGLTFs

loadingGLTFs: Map<string, LoadedGLTFCallback[]>

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

Inherited from

RendererInterface.loadingGLTFs


matBundle

matBundle: URL

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


materialInstanceRegistry

materialInstanceRegistry: Map<number, NativeMaterialInstanceRP>

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


materialProvider?

optional materialProvider: NativeMaterialProviderRP

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


materials

materials: Map<string, Material>

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

Inherited from

RendererInterface.materials


nativeEngineRP?

optional nativeEngineRP: NativeEngineRP

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


onRenderGizmos()?

optional onRenderGizmos: (renderer) => void

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

Parameters

renderer

RendererInterface

Returns

void

Inherited from

RendererInterface.onRenderGizmos


onRenderUI()?

optional onRenderUI: (renderer) => void

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

Parameters

renderer

RendererInterface

Returns

void

Inherited from

RendererInterface.onRenderUI


outlineMaterial

outlineMaterial: Material

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


outlineSceneRP?

optional outlineSceneRP: NativeSceneRP

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


outlineViewRP?

optional outlineViewRP: NativeViewRP

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


plane?

optional plane: Mesh

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

Inherited from

RendererInterface.plane


planeXY?

optional planeXY: Mesh

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

Inherited from

RendererInterface.planeXY


rendererRP?

optional rendererRP: NativeRendererRP

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


renderOptions

renderOptions: SceneRenderOptions

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

Inherited from

RendererInterface.renderOptions


renderUI

renderUI: ROSEvent<RenderEvent>

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

Inherited from

RendererInterface.renderUI


samplerCache

samplerCache: Map<number, NativeTextureSamplerRP>

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


sceneRP?

optional sceneRP: NativeSceneRP

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


skyboxRP?

optional skyboxRP: NativeSkyboxRP

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


tinyGltf?

optional tinyGltf: TinyGltf

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

Inherited from

RendererInterface.tinyGltf


tmrwRooms?

optional tmrwRooms: MainModule

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


transparent

transparent: boolean = false

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

Inherited from

RendererInterface.transparent


viewMode

viewMode: eViewModes = eViewModes.FINAL

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


viewRP?

optional viewRP: NativeViewRP

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


_temp_vec3

static _temp_vec3: vec3

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


_temp_vec3b

static _temp_vec3b: vec3

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


instance?

static optional instance: RendererInterface

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

Inherited from

RendererInterface.instance

Accessors

environment

Set Signature

set environment(env): void

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

Parameters
env

HDREnvironment

Returns

void

Overrides

RendererInterface.environment

Methods

clearScene()

clearScene(): void

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

Returns

void


configureCanvas()

configureCanvas(): void

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

Returns

void

Overrides

RendererInterface.configureCanvas


createMaterialInstance()

createMaterialInstance(material, vertexBuffer): NativeMaterialInstanceRP

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

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:673

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:1177

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:553

Destroy all allocated resources

Returns

void

Overrides

RendererInterface.destroy


destroyGLTF()

destroyGLTF(url): void

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

Frees from memory

Parameters

url

string

Returns

void

Inherited from

RendererInterface.destroyGLTF


getAmbientOcclusionOptions()

getAmbientOcclusionOptions(): ambientOcclusionOptions

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

Returns

ambientOcclusionOptions


getAmbientOcclutionSSCTOptions()

getAmbientOcclutionSSCTOptions(): ssctOptions

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

Returns

ssctOptions


getBloomOptions()

getBloomOptions(): bloomOptions

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

Returns

bloomOptions


getDebugInfo()

getDebugInfo(): DebugInfo

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

Returns

DebugInfo

Overrides

RendererInterface.getDebugInfo


getDepthOfFieldBokehOptions()

getDepthOfFieldBokehOptions(): depthOfFieldBokehOptions

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

Returns

depthOfFieldBokehOptions


getDepthOfFieldOptions()

getDepthOfFieldOptions(): depthOfFieldOptions

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

Returns

depthOfFieldOptions


getDitheringOptions()

getDitheringOptions(): ditheringOptions

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

Returns

ditheringOptions


getDynamicResolutionOptions()

getDynamicResolutionOptions(): dynamicResolutionOptions

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

Returns

dynamicResolutionOptions


getFogOptions()

getFogOptions(): fogOptions

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

Returns

fogOptions


getFramebufferSize()

getFramebufferSize(): vec2

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

Returns

vec2

Overrides

RendererInterface.getFramebufferSize


getGuardBandOptions()

getGuardBandOptions(): object

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

Returns

object

enabled?

optional enabled: boolean


getLightingOptions()

getLightingOptions(): lightingOptions

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

Returns

lightingOptions


getMultisampleAntialiasingOptions()

getMultisampleAntialiasingOptions(): multiSampleAntiAliasingOptions

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

Returns

multiSampleAntiAliasingOptions


getName()

getName(): string

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

Returns

string

Overrides

RendererInterface.getName


getPlaneMesh()

getPlaneMesh(): Mesh

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

static mesh

Returns

Mesh

Inherited from

RendererInterface.getPlaneMesh


getPostProcessing()

getPostProcessing(): boolean

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

Returns

boolean


getScreenspaceReflectionsOptions()

getScreenspaceReflectionsOptions(): screenspaceReflectionsOptions

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

Returns

screenspaceReflectionsOptions


getSoftShadowsOptions()

getSoftShadowsOptions(): softShadowOptions

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

Returns

softShadowOptions


getSupportedViewModes()

getSupportedViewModes(): string[]

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

Returns

string[]

Overrides

RendererInterface.getSupportedViewModes


getTemporalAntiAliasingOptions()

getTemporalAntiAliasingOptions(): temporalAntiAliasingOptions

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

Returns

temporalAntiAliasingOptions


getTexture()

getTexture(name): undefined | Texture

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

Parameters

name

string

Returns

undefined | Texture

Overrides

RendererInterface.getTexture


getVignetteOptions()

getVignetteOptions(): vignetteOptions

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

Returns

vignetteOptions


getVSMShadowsOptions()

getVSMShadowsOptions(): vsmShadowOptions

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

Returns

vsmShadowOptions


init()

init(nativeCanvas): Promise<void>

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

Parameters

nativeCanvas

HTMLCanvasElement

Returns

Promise<void>


internalDestroyGLTF()

internalDestroyGLTF(info): void

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

Parameters

info

GLTFInfo

Returns

void

Overrides

RendererInterface.internalDestroyGLTF


internalLoadGLTF()

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

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

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:1489

Parameters

env

Environment

Returns

Promise<void>


loadGLTF()

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

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

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:353

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:1981

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:1006

Parameters

scene

Scene

Returns

Promise<void>


newMesh()

newMesh(): Mesh

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

Returns

Mesh

Inherited from

RendererInterface.newMesh


pickDepths()

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

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

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:2025

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:997

Parameters

url

string

name?

string

Returns

void

Overrides

RendererInterface.preloadTexture


render()

render(scene, camera): void

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

Renders a scene from a point of view

Parameters

scene

Scene

camera

Camera

Returns

void

Overrides

RendererInterface.render


renderablesToNative()

renderablesToNative(renderables, actors): void

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

Parameters

renderables

nativeEntityRP[]

actors

RenderActor[]

Returns

void


resize()

resize(logical, device): void

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

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:863

Parameters

options

ambientOcclusionOptions

Returns

void


setAmbientOcclutionSSCTOptions()

setAmbientOcclutionSSCTOptions(options): void

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

Parameters

options

ssctOptions

Returns

void


setBloomOptions()

setBloomOptions(options): void

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

Parameters

options

bloomOptions

Returns

void


setDepthOfFieldBokehOptions()

setDepthOfFieldBokehOptions(options): void

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

Parameters

options

depthOfFieldBokehOptions

Returns

void


setDepthOfFieldOptions()

setDepthOfFieldOptions(options): void

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

Parameters

options

depthOfFieldOptions

Returns

void


setDitheringOptions()

setDitheringOptions(options): void

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

Parameters

options

ditheringOptions

Returns

void


setDynamicResoultionOptions()

setDynamicResoultionOptions(options): void

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

Parameters

options

dynamicResolutionOptions

Returns

void


setEnvironment()

setEnvironment(env): void

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

Parameters

env

HDREnvironment

Returns

void

Overrides

RendererInterface.setEnvironment


setFogOptions()

setFogOptions(options): void

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

Parameters

options

fogOptions

Returns

void


setGuardBandOptions()

setGuardBandOptions(options): void

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

Parameters

options
enabled?

boolean

Returns

void


setLightingOptions()

setLightingOptions(options): void

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

Parameters

options

lightingOptions

Returns

void


setMultisampleAntiAliasingOptions()

setMultisampleAntiAliasingOptions(options): void

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

Parameters

options

multiSampleAntiAliasingOptions

Returns

void


setPostProcessing()

setPostProcessing(enabled): void

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

Parameters

enabled

boolean

Returns

void


setScreenspaceReflectionsOptions()

setScreenspaceReflectionsOptions(options): void

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

Parameters

options

screenspaceReflectionsOptions

Returns

void


setSoftShadowsOptions()

setSoftShadowsOptions(options): void

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

Parameters

options

softShadowOptions

Returns

void


setTemporalAntiAliasingOptions()

setTemporalAntiAliasingOptions(options): void

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

Parameters

options

temporalAntiAliasingOptions

Returns

void


setTonemapping()

setTonemapping(): void

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

Returns

void


setViewMode()

setViewMode(node, mode): void

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

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:815

Parameters

options

vignetteOptions

Returns

void


setVSMShadowsOptions()

setVSMShadowsOptions(options): void

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

Parameters

options

vsmShadowOptions

Returns

void


showTexture()

showTexture(): void

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

Returns

void

Overrides

RendererInterface.showTexture


unloadGLTF()

unloadGLTF(url): void

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

Destroys one GLTF from memory

Parameters

url

string

Returns

void

Inherited from

RendererInterface.unloadGLTF


updateNativeLight()

updateNativeLight(light): undefined | nativeEntityRP

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

Parameters

light

LightActor

Returns

undefined | nativeEntityRP


updateNativeMesh()

updateNativeMesh(mesh, requireTangents): object

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

Parameters

mesh

Mesh

requireTangents

boolean

Returns

object

indexBuffer

indexBuffer: NativeIndexBufferRP

vertexBuffer

vertexBuffer: NativeVertexBufferRP


updateRenderables()

updateRenderables(node, camera, renderables, actors): void

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

Frustum cull renderables and update transform and material

Parameters

node

Node

camera

Camera

renderables

nativeEntityRP[]

actors

RenderActor[]

Returns

void


updateRenderOptions()

updateRenderOptions(): void

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

Returns

void

Events

renderAlpha

renderAlpha: ROSEvent<EventHandler<any[]>>

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

Overrides

RendererInterface.renderAlpha