Options used to create this ShaderPass.

interface ShaderPassOptions {
    autoRender?: boolean;
    outputTarget?: RenderTarget;
    additionalOutputTargets?: RenderTarget[];
    useCustomScenePassEntry?: RenderPassEntry;
    texturesOptions?: SceneObjectTextureOptions;
    targets?: Partial<GPUColorTargetState>[];
    renderBundle?: RenderBundle;
    label?: string;
    copyOutputToRenderTexture?: boolean;
    isPrePass?: boolean;
    uniforms?: ReadOnlyInputBindings;
    storages?: ReadWriteInputBindings;
    bindings?: BindGroupBindingElement[];
    shaders?: MaterialShaders;
    useAsyncPipeline?: boolean;
    bindGroups?: BindGroup[];
    samplers?: Sampler[];
    textures?: MaterialTexture[];
    useProjection?: boolean;
    transparent?: boolean;
    depth?: boolean;
    depthWriteEnabled?: boolean;
    depthCompare?: GPUCompareFunction;
    depthFormat?: GPUTextureFormat;
    cullMode?: GPUCullMode;
    sampleCount?: number;
}

Hierarchy (View Summary)

Properties

autoRender?: boolean

Whether we should add this Mesh to our Scene to let it handle the rendering process automatically.

outputTarget?: RenderTarget

Optional RenderTarget to render this Mesh to instead of the canvas context.

additionalOutputTargets?: RenderTarget[]

Additional output RenderTarget onto which render this Mesh, besides the main outputTarget or screen. Useful for some effects that might need to render the same Mesh twice or more. Beware tho that the Mesh pipeline has to exactly fit the provided RenderTarget render passes descriptors as no checks will be performed here.

useCustomScenePassEntry?: RenderPassEntry

Whether to render this Mesh into a custom Scene custom screen pass entry instead of the default one.

texturesOptions?: SceneObjectTextureOptions

Parameters used by this Mesh to create a MediaTexture.

targets?: Partial<GPUColorTargetState>[]

Optional ().targets | targets properties.

renderBundle?: RenderBundle

Optional RenderBundle into which this Mesh should be added.

label?: string

The label of this Mesh, sent to various GPU objects for debugging purpose.

copyOutputToRenderTexture?: boolean

Whether the result of this ShaderPass should be copied to the renderTexture after each render. Default to false.

isPrePass?: boolean

Whether this ShaderPass should be rendered to the main buffer using the renderer renderPass before drawing the other objects to the main buffer. Useful for "blit" passes using the content of an inputTarget.

Uniforms input to pass to a BindGroup.

Read only or read/write storages input to pass to a BindGroup.

Array of already created bindings (buffers, texture, etc.) to pass to this BindGroup.

shaders?: MaterialShaders

Shaders to use with this Material.

useAsyncPipeline?: boolean

Whether to compile the Material GPURenderPipeline or GPUComputePipeline asynchronously or not.

bindGroups?: BindGroup[]

Array of already created bind groups to be used by this Material.

samplers?: Sampler[]

Array of already created samplers to be used by this Material.

textures?: MaterialTexture[]

Array of already created Texture or MediaTexture to be used by this Material.

useProjection?: boolean

Whether this RenderMaterial should implicitly use the renderer camera and lights bind group.

transparent?: boolean

Whether this RenderMaterial should be treated as transparent. Impacts the render pipeline blend property.

depth?: boolean

Whether this RenderMaterial should write to the depth buffer.

depthWriteEnabled?: boolean

Whether this RenderMaterial should enable depth write.

depthCompare?: GPUCompareFunction

Depth function to use with this RenderMaterial.

depthFormat?: GPUTextureFormat

Format of the depth texture to use with this RenderMateria.l

cullMode?: GPUCullMode

Cull mode to use with this RenderMaterial.

sampleCount?: number

The sampleCount of the RenderPass onto which we'll be drawing. Set internally.