Skip to content

@tmrw-realityos/charm


@tmrw-realityos/charm / AccelerationStructure

Class: AccelerationStructure

Defined in: packages/charm/src/graphics/accelerationStructure.ts:16

BVH acceleration structure based on tinybvh. Useful for raypicking and collision detection. Does not support skinned meshes.

Constructors

Constructor

new AccelerationStructure(): AccelerationStructure

Defined in: packages/charm/src/graphics/accelerationStructure.ts:21

Returns

AccelerationStructure

Properties

initialized?

optional initialized: Promise<Instance>

Defined in: packages/charm/src/graphics/accelerationStructure.ts:17

Methods

build()

build(node, layers): void

Defined in: packages/charm/src/graphics/accelerationStructure.ts:39

Traverse the node tree and build a BLAS for each unique mesh. Create a BLASInstance = {Reference to BLAS, transform} for each mesh instance. Finally build a TLAS of all BLASses.

Parameters

node

Node

layers

number = 0xff

bitmask of enabled layers

Returns

void


init()

init(): Promise<Instance>

Defined in: packages/charm/src/graphics/accelerationStructure.ts:25

Returns

Promise<Instance>


intersect()

intersect(rayOrigin, rayDirection): undefined | RayHit

Defined in: packages/charm/src/graphics/accelerationStructure.ts:138

Intersect ray with bvh

Parameters

rayOrigin

vec3

rayDirection

vec3

Returns

undefined | RayHit

hit position and node or undefined if no hit.


intersectMulti()

intersectMulti(rayOrigins, rayDirections, rayCount): (undefined | RayHit)[]

Defined in: packages/charm/src/graphics/accelerationStructure.ts:167

Intersect multiple rays with bvh

Parameters

rayOrigins

Flat array of ray origins [x0,y0,z0,x1,y1,z1,...]

Float32Array<ArrayBufferLike> | number[]

rayDirections

Flay array of ray directions

Float32Array<ArrayBufferLike> | number[]

rayCount

number

number of rays

Returns

(undefined | RayHit)[]

Array of hit position and node or undefined if no hit.


updateTransforms()

updateTransforms(): void

Defined in: packages/charm/src/graphics/accelerationStructure.ts:108

Update bvh if any node transformation was changed.

Returns

void