---
url: /api/passes/compositeEffectPass/functions/compositeEffectPass.md
---
# compositeEffectPass()

```ts
function compositeEffectPass<
  U extends UniformSources<EffectUniformContext> = Record<string, never>,
>(params: {
  gl?: WebGL2RenderingContext;
  passes: EffectPass[];
  uniforms?: U;
}): CompositeEffectPass<U>;
```

Creates a composite effect pass from a series of sub-passes.
This is useful for complex effects that require multiple steps, like Bloom or Blur.

[Example: Multi pass](/examples/post-processing/multi-pass/)

## Type Parameters

### U

`U` *extends* [`UniformSources`](../../../types/types/type-aliases/UniformSources.md)<[`EffectUniformContext`](../../effectPass/type-aliases/EffectUniformContext.md)> = `Record`<`string`, `never`>

## Parameters

### params

Configuration for the composite effect pass.

#### gl?

`WebGL2RenderingContext`

Optional WebGL2 context used to initialize the composite effect immediately.

#### passes

[`EffectPass`](../../effectPass/type-aliases/EffectPass.md)\[]

Ordered effect passes to execute.

#### uniforms?

`U` = `...`

Reactive uniform sources for the composite effect itself.

## Returns

[`CompositeEffectPass`](../type-aliases/CompositeEffectPass.md)<`U`>
