Appearance
@tmrw-realityos/charm / WebGPUMesh
Class: WebGPUMesh
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMesh.ts:85
WebGPUMesh is the class that manages a mesh in the GPU. It contains a set of primitives and a WebGPUBuffer where the primitives geometry is stored. It doesnt store in RAM the geometry unless it is created using the Mesh class. It inherits from Mesh class to implement some containers in case we want to create dynamic geometry.
Extends
Constructors
Constructor
new WebGPUMesh():
WebGPUMesh
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMesh.ts:89
Returns
WebGPUMesh
Overrides
Properties
bounding
bounding:
AABB
Defined in: packages/charm/src/graphics/mesh.ts:29
Inherited from
buffer?
optionalbuffer:WebGPUBuffer
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMesh.ts:86
colors?
optionalcolors:number[] |Uint8Array<ArrayBufferLike>
Defined in: packages/charm/src/graphics/mesh.ts:36
Inherited from
indices?
optionalindices:Uint32Array<ArrayBufferLike> |number[] |Uint16Array<ArrayBufferLike>
Defined in: packages/charm/src/graphics/mesh.ts:37
Inherited from
mustUpdate
mustUpdate:
boolean=false
Defined in: packages/charm/src/graphics/mesh.ts:38
Inherited from
normals?
optionalnormals:Float32Array<ArrayBufferLike> |number[]
Defined in: packages/charm/src/graphics/mesh.ts:32
Inherited from
positions?
optionalpositions:Float32Array<ArrayBufferLike> |number[]
Defined in: packages/charm/src/graphics/mesh.ts:31
Inherited from
primitives
primitives:
WebGPUPrimitive[] =[]
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMesh.ts:87
Overrides
tangents?
optionaltangents:Float32Array<ArrayBufferLike> |number[]
Defined in: packages/charm/src/graphics/mesh.ts:35
Inherited from
texcoords?
optionaltexcoords:Float32Array<ArrayBufferLike> |number[]
Defined in: packages/charm/src/graphics/mesh.ts:33
Inherited from
texcoords1?
optionaltexcoords1:Float32Array<ArrayBufferLike> |number[]
Defined in: packages/charm/src/graphics/mesh.ts:34
Inherited from
attribProperties
staticattribProperties:object[]
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMesh.ts:105
bytesPerComponent
bytesPerComponent:
number=4
format
format:
string="float32x3"
location
location:
number=0
name
name:
string="positions"
numComponents
numComponents:
number=3
Methods
appendMesh()
appendMesh(
mesh,transform):void
Defined in: packages/charm/src/graphics/mesh.ts:130
Parameters
mesh
transform
undefined | mat4
Returns
void
Inherited from
bakeTransform()
bakeTransform(
transform,start,range):void
Defined in: packages/charm/src/graphics/mesh.ts:99
applies a transformation in place to every vertex and normal
Parameters
transform
mat4
a mat4 that contains the transform to apply
start
number = 0
an offset defined from which primitive to start
range
number = -1
the number of primitives that must be affected
Returns
void
Inherited from
bindToRenderPass()
bindToRenderPass(
pass):void
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMesh.ts:295
Parameters
pass
GPURenderPassEncoder
Returns
void
computeNormals()
computeNormals():
Float32Array
Defined in: packages/charm/src/graphics/mesh.ts:187
computes the normals for every vertex based on connectivity and face orientation
Returns
Float32Array
Inherited from
copyFrom()
copyFrom(
mesh):void
Defined in: packages/charm/src/graphics/mesh.ts:76
Parameters
mesh
Returns
void
Inherited from
createCube()
createCube(
halfsize):void
Defined in: packages/charm/src/graphics/mesh.ts:297
Parameters
halfsize
number
Returns
void
Inherited from
createCylinder()
createCylinder(
height,lowRadius,highRadius,subdivisions):void
Defined in: packages/charm/src/graphics/mesh.ts:320
Parameters
height
number
lowRadius
number
highRadius
number
subdivisions
number = 32
Returns
void
Inherited from
createGrid()
createGrid(
halfsize,subdivisions):void
Defined in: packages/charm/src/graphics/mesh.ts:253
Parameters
halfsize
number
subdivisions
number = 10
Returns
void
Inherited from
createPlane()
createPlane(
halfsize,xy):void
Defined in: packages/charm/src/graphics/mesh.ts:276
Parameters
halfsize
number
xy
boolean = false
Returns
void
Inherited from
createPrimitive()
createPrimitive():
WebGPUPrimitive
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMesh.ts:98
Returns
WebGPUPrimitive
Overrides
createSphere()
createSphere(
radius,subdivisions,arc,hemi):void
Defined in: packages/charm/src/graphics/mesh.ts:367
Parameters
radius
number
subdivisions
number = 24
arc
number = 24
hemi
boolean = false
Returns
void
Inherited from
createTorus()
createTorus(
innerradius,outerradius,angle,innerslices,outerslices):void
Defined in: packages/charm/src/graphics/mesh.ts:420
innerradius is the small, outerradius is the big one. Use angle to only create a partial torus
Parameters
innerradius
number
outerradius
number
angle
number = ...
innerslices
number = 24
outerslices
number = 32
Returns
void
Inherited from
destroy()
destroy():
void
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMesh.ts:93
Returns
void
Overrides
updateBounding()
updateBounding():
void
Defined in: packages/charm/src/graphics/mesh.ts:57
Returns
void
Inherited from
uploadToGPU()
uploadToGPU(
backend):void
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMesh.ts:158
Called from SceneToRenderables before rendering to upload geometry to GPU
Parameters
backend
RendererBackend
Returns
void