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

  • Force setting a given buffer binding shouldUpdate flag to true to update it at next render.

    Parameters

    • OptionalbufferBindingName: string

      The buffer binding name.

    • OptionalbindingName: string

      The binding name.

    Returns void