Class: UniformGroup

PIXI.UniformGroup

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.
})

new PIXI.UniformGroup (uniforms, isStatic, isUbo)

Name Type Attributes Description
uniforms object | Buffer <optional>

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

isStatic boolean <optional>

Uniforms wont be changed after creation

isUbo boolean <optional>

if true, will treat this uniform group as a uniform buffer object

Members

group boolean readonly

Its a group and not a single uniforms

Default Value:
  • true

static boolean

Uniforms wont be changed after creation

ubo boolean

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

uniforms object readonly

uniform values

dirtyId number protected

dirty version

id number protected

unique id

Methods

PIXI.UniformGroup.uboFrom (uniforms, _static) PIXI.UniformGroup static

A short hand function for creating a static UBO UniformGroup.

Name Type Attributes Description
uniforms Dict | PIXI.Buffer

the ubo item

_static boolean <optional>

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

Returns:
Type Description
PIXI.UniformGroup

add (name, uniforms, _static) void

Name Type Attributes Description
name string
uniforms Dict
_static boolean <optional>