Skip to content

@tmrw-realityos/charmDocs


@tmrw-realityos/charm / LowlevelEngine

Class: LowlevelEngine

Extends

  • RendererInterface

Constructors

new LowlevelEngine()

new LowlevelEngine(): LowlevelEngine

Returns

LowlevelEngine

Overrides

RendererInterface.constructor

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:271

Properties

basePath

basePath: string = ""

Inherited from

RendererInterface.basePath

Defined in

packages/charm/src/graphics/rendererInterface.ts:49


cameraRP?

optional cameraRP: NativeCameraRP

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:252


canvas?

optional canvas: HTMLCanvasElement

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:255


debug

debug: boolean = true

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:263


defaultEmissiveTexture?

optional defaultEmissiveTexture: NativeTextureRP

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:260


defaultSampler?

optional defaultSampler: NativeTextureSamplerRP

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:262


draw?

optional draw: DrawInterface

Inherited from

RendererInterface.draw

Defined in

packages/charm/src/graphics/rendererInterface.ts:53


entityRegistry

entityRegistry: Map<string, nativeEntityRP>

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:259


frameIndex

frameIndex: number = 0

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:269


fx

fx: boolean = false

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:261


loadedGLTFs

loadedGLTFs: Map<string, GLTFInfo>

Inherited from

RendererInterface.loadedGLTFs

Defined in

packages/charm/src/graphics/rendererInterface.ts:56


loadingGLTFs

loadingGLTFs: Map<string, LoadedGLTFCallback[]>

Inherited from

RendererInterface.loadingGLTFs

Defined in

packages/charm/src/graphics/rendererInterface.ts:57


matBundle

matBundle: URL

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:267


materialInstanceRegistry

materialInstanceRegistry: Map<number, NativeMaterialInstanceRP>

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:256


materialProvider?

optional materialProvider: NativeMaterialProviderRP

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:257


nativeEngineRP?

optional nativeEngineRP: NativeEngineRP

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:249


plane?

optional plane: Mesh

Inherited from

RendererInterface.plane

Defined in

packages/charm/src/graphics/rendererInterface.ts:50


planeXY?

optional planeXY: Mesh

Inherited from

RendererInterface.planeXY

Defined in

packages/charm/src/graphics/rendererInterface.ts:51


rendererRP?

optional rendererRP: NativeRendererRP

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:251


sceneRP?

optional sceneRP: NativeSceneRP

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:253


texturesCache

texturesCache: Map<string, NativeTexture>

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:258


tinyGltf?

optional tinyGltf: TinyGltf

Inherited from

RendererInterface.tinyGltf

Defined in

packages/charm/src/graphics/rendererInterface.ts:55


tmrwRooms?

optional tmrwRooms: MainModule

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:254


viewRP?

optional viewRP: NativeViewRP

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:250

Methods

buildTestMesh()

buildTestMesh(): Promise<void>

Returns

Promise<void>

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:690


clearScene()

clearScene(): void

Returns

void

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:1192


createMaterialProvider()

createMaterialProvider(matBundle): Promise<NativeMaterialProviderRP>

Create material provider from matz bundle

Parameters

matBundle: string | URL

path to matz file

Returns

Promise<NativeMaterialProviderRP>

new material provider

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:352


createNativeMesh()

createNativeMesh(mesh, material, transform): nativeEntityRP

currently it creates Entities, no meshes

Parameters

mesh: NativeMesh

material: Material

transform: mat4 = ...

Returns

nativeEntityRP

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:888


createTexture()

createTexture(name, data): Texture

Parameters

name: string

data: TextureContent

Returns

Texture

Overrides

RendererInterface.createTexture

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:1320


createTextureFromKTX()

createTextureFromKTX(_name, _data, _callback?): undefined | Texture

Parameters

_name: string

_data: ArrayBuffer

_callback?

Returns

undefined | Texture

Overrides

RendererInterface.createTextureFromKTX

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:1345


destroy()

destroy(): void

Destroy all allocated resources

Returns

void

Overrides

RendererInterface.destroy

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:275


getAmbientOcclusionOptions()

getAmbientOcclusionOptions(): Partial<Omit<NativeViewRP$AmbientOcclusionOptions, "quality" | "lowPassFilter" | "upsampling"> & object>

Returns

Partial<Omit<NativeViewRP$AmbientOcclusionOptions, "quality" | "lowPassFilter" | "upsampling"> & object>

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:560


getAmbientOcclutionSSCTOptions()

getAmbientOcclutionSSCTOptions(): Partial<NativeViewRP$AmbientOcclusionSSCTOptions>

Returns

Partial<NativeViewRP$AmbientOcclusionSSCTOptions>

Defined in

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


getBloomOptions()

getBloomOptions(): Partial<Omit<NativeViewRP$BloomOptions, "blendMode"> & object>

Returns

Partial<Omit<NativeViewRP$BloomOptions, "blendMode"> & object>

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:408


getDepthOfFieldBokehOptions()

getDepthOfFieldBokehOptions(): Partial<NativeViewRP$DepthOfFieldBokehOptions>

Returns

Partial<NativeViewRP$DepthOfFieldBokehOptions>

Defined in

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


getDepthOfFieldOptions()

getDepthOfFieldOptions(): Partial<Omit<NativeViewRP$DepthOfFieldOptions, "filter"> & object>

Returns

Partial<Omit<NativeViewRP$DepthOfFieldOptions, "filter"> & object>

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:471


getDitheringOptions()

getDitheringOptions(): Partial<Omit<NativeViewRP$DitheringOptions, "mode"> & object>

Returns

Partial<Omit<NativeViewRP$DitheringOptions, "mode"> & object>

Defined in

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


getDynamicResolutionOptions()

getDynamicResolutionOptions(): Partial<Omit<NativeViewRP$DynamicResolutionOptions, "quality"> & object>

Returns

Partial<Omit<NativeViewRP$DynamicResolutionOptions, "quality"> & object>

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:429


getFogOptions()

getFogOptions(): Partial<NativeViewRP$FogOptions>

Returns

Partial<NativeViewRP$FogOptions>

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:455


getGuardBandOptions()

getGuardBandOptions(): object

Returns

object

enabled?

optional enabled: boolean

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:441


getLightingOptions()

getLightingOptions(): Partial<Omit<NativeViewRP$LightOptions, "shadowType"> & object>

Returns

Partial<Omit<NativeViewRP$LightOptions, "shadowType"> & object>

Defined in

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


getMultisampleAntialiasingOptions()

getMultisampleAntialiasingOptions(): Partial<NativeViewRP$MultiSampleAntiAliasingOptions>

Returns

Partial<NativeViewRP$MultiSampleAntiAliasingOptions>

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:582


getPlaneMesh()

getPlaneMesh(): Mesh

static mesh

Returns

Mesh

Inherited from

RendererInterface.getPlaneMesh

Defined in

packages/charm/src/graphics/rendererInterface.ts:158


getPostProcessing()

getPostProcessing(): boolean

Returns

boolean

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:386


getScreenspaceReflectionsOptions()

getScreenspaceReflectionsOptions(): Partial<NativeViewRP$ScreenSpaceReflectionsOptions>

Returns

Partial<NativeViewRP$ScreenSpaceReflectionsOptions>

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:621


getSoftShadowsOptions()

getSoftShadowsOptions(): Partial<NativeViewRP$SoftShadowOptions>

Returns

Partial<NativeViewRP$SoftShadowOptions>

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:647


getTemporalAntiAliasingOptions()

getTemporalAntiAliasingOptions(): Partial<Omit<NativeViewRP$TemporalAntiAliasingOptions, "boxClipping" | "boxType"> & object>

Returns

Partial<Omit<NativeViewRP$TemporalAntiAliasingOptions, "boxClipping" | "boxType"> & object>

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:601


getTexture()

getTexture(name): undefined | Texture

Parameters

name: string

Returns

undefined | Texture

Overrides

RendererInterface.getTexture

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:1365


getVignetteOptions()

getVignetteOptions(): Partial<NativeViewRP$VignetteOptions>

Returns

Partial<NativeViewRP$VignetteOptions>

Defined in

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


getVSMShadowsOptions()

getVSMShadowsOptions(): Partial<NativeViewRP$VsmShadowOptions>

Returns

Partial<NativeViewRP$VsmShadowOptions>

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:634


init()

init(nativeCanvas): Promise<void>

Parameters

nativeCanvas: HTMLCanvasElement

Returns

Promise<void>

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:288


internalLoadGLTF()

internalLoadGLTF(_url, _gltf, _options?): undefined | GLTFInfo

Parameters

_url: string

_gltf: GlTf

_options?: GLTFLoadingOptions

Returns

undefined | GLTFInfo

Inherited from

RendererInterface.internalLoadGLTF

Defined in

packages/charm/src/graphics/rendererInterface.ts:117


loadEnvironment()

loadEnvironment(env): Promise<void>

Parameters

env: Environment

Returns

Promise<void>

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:1133


loadGLTF()

loadGLTF(url, _options?, _force?): Promise<undefined | GLTFInfo>

Parameters

url: string

_options?: GLTFLoadingOptions

_force?: boolean

Returns

Promise<undefined | GLTFInfo>

See

RendererInterface

Overrides

RendererInterface.loadGLTF

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:1749


loadGLTFFromBinary()

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

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

Defined in

packages/charm/src/graphics/rendererInterface.ts:105


loadGLTFLoadersGL()

loadGLTFLoadersGL(url, root?, animations?): Promise<undefined | Node>

Load a gltf from url using loaders.gl. In contrast to tinygltf, this loader extracts buffer attributes to typed arrays which can be used to populate mesh.positions, mesh.normals, etc.

Parameters

url: string

gltf/glb url

root?: Node

node to append processed scene to

animations?: Animation[]

existing set of animations. gltf animations will be appended.

Returns

Promise<undefined | Node>

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:1424


loadImage()

loadImage(path): Promise<HTMLImageElement>

Helper to async load an image

Parameters

path: string

image path

Returns

Promise<HTMLImageElement>

promise

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:1402


loadScene()

loadScene(scene): Promise<void>

Parameters

scene: Scene

Returns

Promise<void>

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:672


newMesh()

newMesh(): Mesh

Returns

Mesh

Overrides

RendererInterface.newMesh

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:684


packTangentFrame()

packTangentFrame(tangent, normal): quat

Parameters

tangent: vec3

normal: vec3

Returns

quat

Defined in

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


parseAnimation()

parseAnimation(index, json): Animation

TODO: Common code should be shared with WebGPUGltfToNodes

Parameters

index: number

json: GLTFPostprocessed

Returns

Animation

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:1676


preloadTexture()

preloadTexture(url, name?): void

Parameters

url: string

name?: string

Returns

void

Overrides

RendererInterface.preloadTexture

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:1356


render()

render(scene, camera): void

Renders a scene from a point of view

Parameters

scene: Scene

camera: Camera

Returns

void

Overrides

RendererInterface.render

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:1296


resize()

resize(logical, device): void

Parameters

logical

logical.height: number

logical.width: number

device

device.height: number

device.width: number

Returns

void

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:1773


setAmbientOcclusionOptions()

setAmbientOcclusionOptions(options): void

Parameters

options: Partial<Omit<NativeViewRP$AmbientOcclusionOptions, "quality" | "lowPassFilter" | "upsampling"> & object>

Returns

void

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:542


setAmbientOcclutionSSCTOptions()

setAmbientOcclutionSSCTOptions(options): void

Parameters

options: Partial<NativeViewRP$AmbientOcclusionSSCTOptions>

Returns

void

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:529


setBloomOptions()

setBloomOptions(options): void

Parameters

options: Partial<Omit<NativeViewRP$BloomOptions, "blendMode"> & object>

Returns

void

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:390


setDepthOfFieldBokehOptions()

setDepthOfFieldBokehOptions(options): void

Parameters

options: Partial<NativeViewRP$DepthOfFieldBokehOptions>

Returns

void

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:481


setDepthOfFieldOptions()

setDepthOfFieldOptions(options): void

Parameters

options: Partial<Omit<NativeViewRP$DepthOfFieldOptions, "filter"> & object>

Returns

void

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:459


setDitheringOptions()

setDitheringOptions(options): void

Parameters

options: Partial<Omit<NativeViewRP$DitheringOptions, "mode"> & object>

Returns

void

Defined in

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


setDynamicResoultionOptions()

setDynamicResoultionOptions(options): void

Parameters

options: Partial<Omit<NativeViewRP$DynamicResolutionOptions, "quality"> & object>

Returns

void

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:416


setEnvironment()

setEnvironment(env): void

Parameters

env: HDREnvironment

Returns

void

Overrides

RendererInterface.setEnvironment

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:1767


setFogOptions()

setFogOptions(options): void

Parameters

options: Partial<NativeViewRP$FogOptions>

Returns

void

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:445


setGuardBandOptions()

setGuardBandOptions(options): void

Parameters

options

options.enabled?: boolean

Returns

void

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:437


setLightingOptions()

setLightingOptions(options): void

Parameters

options: Partial<Omit<NativeViewRP$LightOptions, "shadowType"> & object>

Returns

void

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:651


setMultisampleAntiAliasingOptions()

setMultisampleAntiAliasingOptions(options): void

Parameters

options: Partial<NativeViewRP$MultiSampleAntiAliasingOptions>

Returns

void

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:573


setPostProcessing()

setPostProcessing(enabled): void

Parameters

enabled: boolean

Returns

void

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:381


setScreenspaceReflectionsOptions()

setScreenspaceReflectionsOptions(options): void

Parameters

options: Partial<NativeViewRP$ScreenSpaceReflectionsOptions>

Returns

void

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:612


setSoftShadowsOptions()

setSoftShadowsOptions(options): void

Parameters

options: Partial<NativeViewRP$SoftShadowOptions>

Returns

void

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:638


setTemporalAntiAliasingOptions()

setTemporalAntiAliasingOptions(options): void

Parameters

options: Partial<Omit<NativeViewRP$TemporalAntiAliasingOptions, "boxClipping" | "boxType"> & object>

Returns

void

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:586


setTonemapping()

setTonemapping(): void

Returns

void

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:367


setVignetteOptions()

setVignetteOptions(options): void

Parameters

options: Partial<NativeViewRP$VignetteOptions>

Returns

void

Defined in

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


setVSMShadowsOptions()

setVSMShadowsOptions(options): void

Parameters

options: Partial<NativeViewRP$VsmShadowOptions>

Returns

void

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:625


updateNativeMesh()

updateNativeMesh(mesh, requireTangents): void

Parameters

mesh: NativeMesh

requireTangents: boolean

Returns

void

Defined in

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


updateRenderables()

updateRenderables(node, camera): void

Frustum cull renderables and update transform and material

Parameters

node: Node

camera: Camera

Returns

void

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:1202


updateTexture()

updateTexture(name, data): void

Parameters

name: string

data: TextureContent

Returns

void

Overrides

RendererInterface.updateTexture

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:1369


updateTextureFromKTX()

updateTextureFromKTX(_name, _data, _callback): void

Parameters

_name: string

_data: ArrayBuffer

_callback

Returns

void

Overrides

RendererInterface.updateTextureFromKTX

Defined in

packages/charm/src/graphics/lowlevelEngine.ts:1386