Skip to content

@tmrw-realityos/charm


@tmrw-realityos/charm / WebGPUImmediateDraw

Class: WebGPUImmediateDraw

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:36

An interface to render simple shapes in inmediate mode. Useful for gizmos and debug info. Do not use to render scene geometry as it wont be taken into account in many steps.

Usage

typescript
renderer.renderAlpha.on( () => {
  renderer.draw.drawPoints(flat_array_of_points, color, pointSize);
})

You can change pipeline parameter using renderer.draw.pipeline:

typescript
renderer.draw.pipeline.push();
renderer.draw.pipeline.setBlend( BlendOperation.add, BlendFactor.one, BlendFactor.one );
renderer.draw.pipeline.setDepthTest( false );
renderer.draw.drawPoints(flat_array_of_points,color, pointSize);
renderer.draw.pipeline.pop();

Extends

  • DrawInterface

Constructors

Constructor

new WebGPUImmediateDraw(context, backend): WebGPUImmediateDraw

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:57

Parameters

context

WebGPURenderContext

backend

WebGPUBackend

Returns

WebGPUImmediateDraw

Overrides

DrawInterface.constructor

Properties

ambientLight

ambientLight: vec3

Defined in: packages/charm/src/graphics/rendererInterface.ts:384

Inherited from

DrawInterface.ambientLight


backend

backend: WebGPUBackend

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:38


context

context: WebGPURenderContext

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:37


drawBufferModified

drawBufferModified: boolean = false

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:55


flatShader

flatShader: FlatShader

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:47


geometryBuffer

geometryBuffer: WebGPUBuffer

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:39


geometryBufferModified

geometryBufferModified: boolean = false

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:54


geometryData

geometryData: Float32Array

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:40


globalUniformsBindGroup?

optional globalUniformsBindGroup: GPUBindGroup

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:45


lastGeometryOffset

lastGeometryOffset: number = 0

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:44


lightVector

lightVector: vec3

Defined in: packages/charm/src/graphics/rendererInterface.ts:383

Inherited from

DrawInterface.lightVector


phongShader

phongShader: PhongShader

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:50


pipeline

pipeline: PipelineInfo

Defined in: packages/charm/src/graphics/rendererInterface.ts:375

Inherited from

DrawInterface.pipeline


pipelineStack

pipelineStack: number[] = []

Defined in: packages/charm/src/graphics/rendererInterface.ts:380

Inherited from

DrawInterface.pipelineStack


pointsShader

pointsShader: PointsShader

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:48


secondaryGeometryBuffer?

optional secondaryGeometryBuffer: WebGPUBuffer

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:42


structData

structData: Float32Array

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:52


textureShader

textureShader: TextureShader

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:49


transform

transform: mat4

Defined in: packages/charm/src/graphics/rendererInterface.ts:377

Inherited from

DrawInterface.transform


transformStack

transformStack: mat4[]

Defined in: packages/charm/src/graphics/rendererInterface.ts:378

Inherited from

DrawInterface.transformStack

Methods

bindGlobalsUniform()

bindGlobalsUniform(renderPass, index): void

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:443

Parameters

renderPass

GPURenderPassEncoder

index

number

Returns

void


destroy()

destroy(): void

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:92

Returns

void

Overrides

DrawInterface.destroy


drawBox()

drawBox(bmin, bmax, color): void

Defined in: packages/charm/src/graphics/rendererInterface.ts:445

Draw box as line geometry

Parameters

bmin

vec3

bmax

vec3

color

vec4

Returns

void

Inherited from

DrawInterface.drawBox


drawGeometry()

drawGeometry(vertices, color, topology): void

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:255

Parameters

vertices

Float32Array

color

vec4

topology

Topology

Returns

void


drawLine()

drawLine(vertices, color, strip): void

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:162

draws simple lines

Parameters

vertices

Float32Array

color

vec4

strip

boolean = false

Returns

void

Overrides

DrawInterface.drawLine


drawMesh()

drawMesh(mesh, color, usePhong, strip, start, range): void

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:171

draws a mesh as long as the attributes are not interleaved

Parameters

mesh

Mesh

color

vec4

usePhong

boolean = false

strip

boolean = false

start

number = 0

range

number = 0

Returns

void

Overrides

DrawInterface.drawMesh


drawPoints()

drawPoints(vertices, color, pointSize, fixedSize): void

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:99

Parameters

vertices

Float32Array

color

vec4

pointSize

number

fixedSize

boolean = true

Returns

void

Overrides

DrawInterface.drawPoints


drawTexture()

drawTexture(texture, area, color, gamma, depth, flipY): void

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:311

Parameters

texture

unknown

area

vec4

color

vec4

gamma

boolean = true

depth

number = 0

flipY

boolean = false

Returns

void

Overrides

DrawInterface.drawTexture


drawTexture3D()

drawTexture3D(texture, position, size, color, gamma, flipY): void

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:385

Parameters

texture

unknown

position

vec3

size

vec2

color

vec4

gamma

boolean = true

flipY

boolean = true

Returns

void

Overrides

DrawInterface.drawTexture3D


pop()

pop(): void

Defined in: packages/charm/src/graphics/rendererInterface.ts:409

Returns

void

Inherited from

DrawInterface.pop


push()

push(): void

Defined in: packages/charm/src/graphics/rendererInterface.ts:404

Returns

void

Inherited from

DrawInterface.push


reset()

reset(): void

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:79

prepares the class for a new frame, resets some offsets to 0

Returns

void

Overrides

DrawInterface.reset


rotate()

rotate(axis, angle_in_rad): void

Defined in: packages/charm/src/graphics/rendererInterface.ts:423

Parameters

axis

vec3

angle_in_rad

number

Returns

void

Inherited from

DrawInterface.rotate


scale()

scale(v): void

Defined in: packages/charm/src/graphics/rendererInterface.ts:427

Parameters

v

vec3

Returns

void

Inherited from

DrawInterface.scale


setTransform()

setTransform(m): void

Defined in: packages/charm/src/graphics/rendererInterface.ts:415

Parameters

m

ReadonlyMat4

Returns

void

Inherited from

DrawInterface.setTransform


translate()

translate(v): void

Defined in: packages/charm/src/graphics/rendererInterface.ts:419

Parameters

v

vec3

Returns

void

Inherited from

DrawInterface.translate


uploadGeometry()

uploadGeometry(data): number

Defined in: packages/charm/src/graphics/WebGPU/WebGPUImmediateDraw.ts:411

Parameters

data

Float32Array

Returns

number