Appearance
@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?
optionalinitialized: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
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