Create a Material specifically built to run computations on the GPU. Internally used by ComputePass.

A ComputeMaterial automatically creates a ComputePipelineEntry. Once all the BindGroup have been created, they are sent with the compute shader code to the ComputePipelineEntry, which is in turns responsible for creating the GPUComputePipeline.

After the GPUComputePipeline has been successfully compiled, the ComputeMaterial is considered to be ready and it can start running the compute shader computations.

Hierarchy (View Summary)

Constructors

Properties

pipelineEntry: ComputePipelineEntry

Options used to create this ComputeMaterial

dispatchSize?: number | number[]

Default work group dispatch size to use with this ComputeMaterial

_useCustomRenderCallback: (pass: GPUComputePassEncoder) => void

function assigned to the useCustomRender callback

type: string

The type of the Material.

uuid: string

The universal unique id of the Material.

renderer: Renderer

The Renderer used.

bindGroups: AllowedBindGroups[]

Array of bind groups used by this Material. This array respects a specific order:

  1. The textures bind groups.
  2. The bind group created using uniforms and storages parameters if any.
  3. Additional bind groups parameters if any.
texturesBindGroups: TextureBindGroup[]

Array of texture bind groups used by this Material.

inputsBindGroups: BindGroup[]

Array of bind groups created using the uniforms and storages parameters when instancing this Material.

clonedBindGroups: AllowedBindGroups[]

Array of cloned bind groups created by this Material.

uniforms: Record<string, Record<string, BufferBindingInput>>

Object containing all uniforms inputs handled by this Material.

storages: Record<string, Record<string, BufferBindingInput>>

Object containing all read only or read/write storages inputs handled by this Material.

inputsBindings: Map<string, BindGroupBindingElement>

Map of bindings created using the uniforms and storages parameters when instancing this Material.

textures: MaterialTexture[]

Array of Texture or MediaTexture handled by this Material.

samplers: Sampler[]

Array of Sampler handled by this Material.

Accessors

  • get ready(): boolean
  • Get whether the renderer is ready, our pipeline entry and pipeline have been created and successfully compiled

    Returns boolean

Methods