Appearance
@tmrw-realityos/charm / WebGPUMesh
Class: WebGPUMesh
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMesh.ts:79
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:83
Returns
WebGPUMesh
Overrides
Properties
bounding
bounding:
AABB
Defined in: packages/charm/src/graphics/mesh.ts:35
Inherited from
buffer?
optionalbuffer:WebGPUBuffer
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMesh.ts:80
colors?
optionalcolors:number[] |Uint8Array<ArrayBufferLike>
Defined in: packages/charm/src/graphics/mesh.ts:42
Inherited from
indices?
optionalindices:Uint32Array<ArrayBufferLike> |number[] |Uint16Array<ArrayBufferLike>
Defined in: packages/charm/src/graphics/mesh.ts:43
Inherited from
mustUpdate
mustUpdate:
boolean=false
Defined in: packages/charm/src/graphics/mesh.ts:44
Inherited from
normals?
optionalnormals:Float32Array<ArrayBufferLike> |number[]
Defined in: packages/charm/src/graphics/mesh.ts:38
Inherited from
positions?
optionalpositions:Float32Array<ArrayBufferLike> |number[]
Defined in: packages/charm/src/graphics/mesh.ts:37
Inherited from
primitives
primitives:
WebGPUPrimitive[] =[]
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMesh.ts:81
Overrides
source
source:
string=""
Defined in: packages/charm/src/graphics/mesh.ts:34
Inherited from
tangents?
optionaltangents:Float32Array<ArrayBufferLike> |number[]
Defined in: packages/charm/src/graphics/mesh.ts:41
Inherited from
texcoords?
optionaltexcoords:Float32Array<ArrayBufferLike> |number[]
Defined in: packages/charm/src/graphics/mesh.ts:39
Inherited from
texcoords1?
optionaltexcoords1:Float32Array<ArrayBufferLike> |number[]
Defined in: packages/charm/src/graphics/mesh.ts:40
Inherited from
attribProperties
staticattribProperties:object[]
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMesh.ts:94
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:131
Parameters
mesh
transform
undefined | mat4
Returns
void
Inherited from
bakeTransform()
bakeTransform(
transform,start,range):void
Defined in: packages/charm/src/graphics/mesh.ts:100
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:146
Parameters
pass
GPURenderPassEncoder
Returns
void
computeNormals()
computeNormals():
Float32Array
Defined in: packages/charm/src/graphics/mesh.ts:188
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:77
Parameters
mesh
Returns
void
Inherited from
createCube()
createCube(
halfsize):void
Defined in: packages/charm/src/graphics/mesh.ts:298
Parameters
halfsize
number
Returns
void
Inherited from
createCylinder()
createCylinder(
height,lowRadius,highRadius,subdivisions):void
Defined in: packages/charm/src/graphics/mesh.ts:321
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:254
Parameters
halfsize
number
subdivisions
number = 10
Returns
void
Inherited from
createPlane()
createPlane(
halfsize,xy):void
Defined in: packages/charm/src/graphics/mesh.ts:277
Parameters
halfsize
number
xy
boolean = false
Returns
void
Inherited from
createPrimitive()
createPrimitive():
WebGPUPrimitive
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMesh.ts:87
Returns
WebGPUPrimitive
Overrides
createSphere()
createSphere(
radius,subdivisions,arc,hemi):void
Defined in: packages/charm/src/graphics/mesh.ts:368
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:421
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
updateBounding()
updateBounding():
void
Defined in: packages/charm/src/graphics/mesh.ts:58
Returns
void