Appearance
@tmrw-realityos/charm / WebGPURenderer
Class: WebGPURenderer
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:83
Renders a mesh to a canvas using WebGPU
@example:
typescript
const renderer = new WebGPURenderer(device, canvas)
renderer.environment = await HDRELoader.load('assets/venetian_crossroads_2k.hdr')
const model = await renderer.loadGLTF('assets/scene.gltf')
const scene = new Scene()
scene.root.addChild(model.root.clone());
renderer.render(scene, camera)See
Extends
Constructors
Constructor
new WebGPURenderer(
device,canvas):WebGPURenderer
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:130
Parameters
device
GPUDevice
canvas
HTMLCanvasElement
Returns
WebGPURenderer
Overrides
Properties
_environment?
protectedoptional_environment:HDREnvironment
Defined in: packages/charm/src/graphics/rendererInterface.ts:227
Inherited from
RendererInterface._environment
accelerationStructure
protectedaccelerationStructure:AccelerationStructure
Defined in: packages/charm/src/graphics/rendererInterface.ts:243
Inherited from
RendererInterface.accelerationStructure
accelerationStructureMustRebuild
protectedaccelerationStructureMustRebuild:boolean=false
Defined in: packages/charm/src/graphics/rendererInterface.ts:245
Inherited from
RendererInterface.accelerationStructureMustRebuild
alwaysRerender
alwaysRerender:
boolean=false
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:120
If true, force frames will be rerendered in every frame loop. Otherwise only rerender on demand.
backend
backend:
WebGPUBackend
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:85
Overrides
basePath
basePath:
string=""
Defined in: packages/charm/src/graphics/rendererInterface.ts:219
Inherited from
bufferMapped
bufferMapped:
boolean=false
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:381
canvas?
optionalcanvas:HTMLCanvasElement
Defined in: packages/charm/src/graphics/rendererInterface.ts:224
Inherited from
commandEncoder?
optionalcommandEncoder:GPUCommandEncoder
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:100
currentScene?
optionalcurrentScene:Scene
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:108
depthReadBuffer?
optionaldepthReadBuffer:GPUBuffer
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:105
depthStagingBuffer?
optionaldepthStagingBuffer:GPUBuffer
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:106
device
device:
GPUDevice
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:84
draw
draw:
WebGPUImmediateDraw
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:92
Overrides
drawDebugInfo
drawDebugInfo:
boolean=false
Defined in: packages/charm/src/graphics/rendererInterface.ts:236
Inherited from
RendererInterface.drawDebugInfo
framegraph
framegraph:
FrameGraph
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:90
gltfToNodes?
optionalgltfToNodes:WebGPUGltfToNodes
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:98
loadedGLTFs
loadedGLTFs:
Map<string,GLTFInfo>
Defined in: packages/charm/src/graphics/rendererInterface.ts:239
Inherited from
loadingGLTFs
loadingGLTFs:
Map<string,LoadedGLTFCallback[]>
Defined in: packages/charm/src/graphics/rendererInterface.ts:240
Inherited from
RendererInterface.loadingGLTFs
materialBindGroupCache
materialBindGroupCache:
Map<number,GPUBindGroup>
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:124
materials
materials:
Map<string,Material>
Defined in: packages/charm/src/graphics/rendererInterface.ts:241
Inherited from
onRenderGizmos()?
optionalonRenderGizmos: (renderer) =>void
Defined in: packages/charm/src/graphics/rendererInterface.ts:248
Parameters
renderer
Returns
void
Inherited from
RendererInterface.onRenderGizmos
onRenderInFinalBuffer()?
optionalonRenderInFinalBuffer: (view,depth,encoder) =>void
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:110
Parameters
view
GPUTexture
depth
GPUTexture
encoder
GPUCommandEncoder
Returns
void
onRenderUI()?
optionalonRenderUI: (renderer) =>void
Defined in: packages/charm/src/graphics/rendererInterface.ts:249
Parameters
renderer
Returns
void
Inherited from
outliner
outliner:
WebGPUMeshOutliner
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:94
PBRPipeline
PBRPipeline:
WebGPUPBRPipeline
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:91
picker?
optionalpicker:WebGPUMeshPicker
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:93
plane?
optionalplane:Mesh
Defined in: packages/charm/src/graphics/rendererInterface.ts:220
Inherited from
planeXY?
optionalplaneXY:Mesh
Defined in: packages/charm/src/graphics/rendererInterface.ts:221
Inherited from
renderables
renderables:
Renderable[] =[]
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:97
renderContext
renderContext:
WebGPURenderContext
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:86
renderOptions
renderOptions:
SceneRenderOptions
Defined in: packages/charm/src/graphics/rendererInterface.ts:235
Inherited from
RendererInterface.renderOptions
renderUI
renderUI:
ROSEvent<RenderEvent>
Defined in: packages/charm/src/graphics/rendererInterface.ts:255
Inherited from
sceneToRenderEngine
sceneToRenderEngine:
WebGPUSceneToRenderEngine
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:96
secondaryCanvas
secondaryCanvas:
ISecondaryCanvas[] =[]
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:88
stagingBuffer?
optionalstagingBuffer:GPUBuffer
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:102
stagingBufferOffset
stagingBufferOffset:
number=0
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:103
stagingShader?
optionalstagingShader:TextureToBufferShader
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:104
tinyGltf?
optionaltinyGltf:TinyGltf
Defined in: packages/charm/src/graphics/rendererInterface.ts:238
Inherited from
transparent
transparent:
boolean=false
Defined in: packages/charm/src/graphics/rendererInterface.ts:226
Inherited from
waitingDepth?
optionalwaitingDepth:IWaitingDepth
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:101
instance?
staticoptionalinstance:RendererInterface
Defined in: packages/charm/src/graphics/rendererInterface.ts:217
Inherited from
Accessors
canvasFormat
Get Signature
get canvasFormat():
GPUTextureFormat
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:176
Returns
GPUTextureFormat
canvasViewFormat
Get Signature
get canvasViewFormat():
GPUTextureFormat
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:180
Returns
GPUTextureFormat
environment
Get Signature
get environment():
undefined|HDREnvironment
Defined in: packages/charm/src/graphics/rendererInterface.ts:231
Returns
undefined | HDREnvironment
Set Signature
set environment(
env):void
Defined in: packages/charm/src/graphics/rendererInterface.ts:228
Parameters
env
undefined | HDREnvironment
Returns
void
Inherited from
renderPipelineDescriptorCache
Get Signature
get renderPipelineDescriptorCache():
GPURenderPipelineDescriptor[]
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:188
Returns
GPURenderPipelineDescriptor[]
Methods
addFetchDepthPass()
addFetchDepthPass():
void
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:384
Called manually during rendering while building the framegraph
Returns
void
clearCache()
clearCache():
void
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:184
Returns
void
configureCanvas()
configureCanvas():
void
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:210
Returns
void
Overrides
RendererInterface.configureCanvas
destroy()
destroy():
void
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:194
Destroy all allocated resources
Returns
void
Overrides
destroyGLTF()
destroyGLTF(
url):void
Defined in: packages/charm/src/graphics/rendererInterface.ts:366
Frees from memory
Parameters
url
string
Returns
void
Inherited from
getDebugInfo()
getDebugInfo():
DebugInfo
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:667
Returns
Overrides
RendererInterface.getDebugInfo
getFramebufferSize()
getFramebufferSize():
vec2
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:503
Returns
vec2
Overrides
RendererInterface.getFramebufferSize
getName()
getName():
string
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:126
Returns
string
Overrides
getPlaneMesh()
getPlaneMesh():
Mesh
Defined in: packages/charm/src/graphics/rendererInterface.ts:401
static mesh
Returns
Inherited from
RendererInterface.getPlaneMesh
getSupportedViewModes()
getSupportedViewModes():
string[]
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:649
Returns
string[]
Overrides
RendererInterface.getSupportedViewModes
getTexture()
getTexture(
name):undefined|Texture
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:509
Parameters
name
string
Returns
undefined | Texture
Overrides
internalDestroyGLTF()
internalDestroyGLTF(
info):void
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:526
Parameters
info
Returns
void
Overrides
RendererInterface.internalDestroyGLTF
internalLoadGLTF()
internalLoadGLTF(
url,gltf,options?):GLTFInfo
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:517
Parameters
url
string
gltf
options?
Returns
Overrides
RendererInterface.internalLoadGLTF
loadGLTF()
loadGLTF(
url,options?,force?):Promise<undefined|GLTFInfo>
Defined in: packages/charm/src/graphics/rendererInterface.ts:306
Loads a GLTF using a cache to avoid loading twice the same GLTF
Parameters
url
string
options?
force?
boolean
Returns
Promise<undefined | GLTFInfo>
Inherited from
loadGLTFFromBinary()
loadGLTFFromBinary(
data,options?,url?):Promise<undefined|GLTFInfo>
Defined in: packages/charm/src/graphics/rendererInterface.ts:353
Loads a GLTF from a Binary array, in case it was dragged from hard drive
Parameters
data
ArrayBuffer
options?
url?
string = "none"
Returns
Promise<undefined | GLTFInfo>
Inherited from
RendererInterface.loadGLTFFromBinary
loadTexture()
loadTexture(
url):WebGPUTexture
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:513
Parameters
url
string
Returns
newMesh()
newMesh():
Mesh
Defined in: packages/charm/src/graphics/rendererInterface.ts:396
Returns
Inherited from
pickDepths()
pickDepths(
_pos):Promise<undefined|Float32Array<ArrayBufferLike>>
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:370
Parameters
_pos
vec2[]
Returns
Promise<undefined | Float32Array<ArrayBufferLike>>
Overrides
pickScene()
pickScene(
x,y,layers,pos?,clipPos?):Promise<undefined|Node>
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:349
Returns the node under a certain coordinate of the mouse. This function is async as it will be resolved in the next frame.
Parameters
x
number
y
number
layers
number = 0xff
pos?
vec3
clipPos?
vec3
Returns
Promise<undefined | Node>
Overrides
preloadTexture()
preloadTexture(
url,name?):void
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:540
Parameters
url
string
name?
string
Returns
void
Overrides
RendererInterface.preloadTexture
readTexturePixel()
readTexturePixel(
texture,x,y,encoder?):Promise<Uint8Array<ArrayBufferLike>>
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:544
Parameters
texture
GPUTexture
x
number
y
number
encoder?
GPUCommandEncoder
Returns
Promise<Uint8Array<ArrayBufferLike>>
render()
render(
scene,camera,options?):void
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:240
Renders a scene from a point of view
Parameters
scene
camera
options?
SceneRenderOptions
Returns
void
Overrides
renderDebugInfo()
renderDebugInfo():
void
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:454
Returns
void
resize()
resize(
logical,device):void
Defined in: packages/charm/src/graphics/rendererInterface.ts:409
Parameters
logical
Size
device
Size
Returns
void
Inherited from
setEnvironment()
setEnvironment(
environment?):void
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:226
Parameters
environment?
Returns
void
Overrides
RendererInterface.setEnvironment
showTexture()
showTexture(
canvas,texture,gamma,flipY):void
Defined in: packages/charm/src/graphics/WebGPU/WebGPURenderer.ts:585
Parameters
canvas
HTMLCanvasElement
texture
GPUTexture
gamma
boolean = true
flipY
boolean = false
Returns
void
Overrides
unloadGLTF()
unloadGLTF(
url):void
Defined in: packages/charm/src/graphics/rendererInterface.ts:345
Destroys one GLTF from memory
Parameters
url
string
Returns
void
Inherited from
Events
renderAlpha
renderAlpha:
ROSEvent<RenderEvent>
Defined in: packages/charm/src/graphics/rendererInterface.ts:254