Class UniformGroup<LAYOUT>

Uniform group holds uniform map and some ID's for work

UniformGroup has two modes:

1: Normal mode Normal mode will upload the uniforms with individual function calls as required

2: Uniform buffer mode This mode will treat the uniforms as a uniform buffer. You can pass in either a buffer that you manually handle, or or a generic object that PixiJS will automatically map to a buffer for you. For maximum benefits, make Ubo UniformGroups static, and only update them each frame.

Rules of UBOs:

  • UBOs only work with WebGL2, so make sure you have a fallback!
  • Only floats are supported (including vec[2,3,4], mat[2,3,4])
  • Samplers cannot be used in ubo's (a GPU limitation)
  • You must ensure that the object you pass in exactly matches in the shader ubo structure. Otherwise, weirdness will ensue!
  • The name of the ubo object added to the group must match exactly the name of the ubo in the shader.
// UBO in shader:
uniform myCoolData { // Declaring a UBO...
mat4 uCoolMatrix;
float uFloatyMcFloatFace;
};
// A new Uniform Buffer Object...
const myCoolData = new UniformBufferGroup({
uCoolMatrix: new Matrix(),
uFloatyMcFloatFace: 23,
}}

// Build a shader...
const shader = Shader.from(srcVert, srcFrag, {
myCoolData // Name matches the UBO name in the shader. Will be processed accordingly.
})

Memberof

PIXI

Type Parameters

Constructors

  • Type Parameters

    Parameters

    • Optional uniforms: LAYOUT | Buffer

      Custom uniforms to use to augment the built-in ones. Or a pixi buffer.

    • Optional isStatic: boolean

      Uniforms wont be changed after creation.

    • Optional isUbo: boolean

      If true, will treat this uniform group as a uniform buffer object.

    Returns UniformGroup<LAYOUT>

Properties

autoManage: boolean
buffer?: Buffer
group: boolean

Its a group and not a single uniforms.

Default

true
static: boolean

Flag for if uniforms wont be changed after creation.

syncUniforms: Dict<UniformsSyncCallback>
ubo: boolean

Flags whether this group is treated like a uniform buffer object.

uniforms: LAYOUT

Uniform values

Member

Methods

  • Parameters

    • name: string
    • uniforms: Dict<any>
    • Optional _static: boolean

    Returns void

  • Returns void

  • Parameters

    • uniforms: Dict<any> | Buffer
    • Optional _static: boolean
    • Optional _ubo: boolean

    Returns UniformGroup<Dict<any>>

  • A short hand function for creating a static UBO UniformGroup.

    Parameters

    • uniforms: Dict<any> | Buffer

      the ubo item

    • Optional _static: boolean

      should this be updated each time it is used? defaults to true here!

    Returns UniformGroup<Dict<any>>

Generated using TypeDoc