luma.gl/docs/api-reference/core/buffer-mapping.md
2023-08-18 17:52:53 -04:00

989 B

BufferMapping (type)

The bufferMapping type provides information about how the buffers the application is planning to bind map to the attributes.

It affects buffers bound with Model.setAttributes() or RenderPipeline.setAttributes()

The simplest use case is to provide a non-default vertex type:

  bufferMap: [
    {name: 'instancePositions', format: 'float32x3'}
    ...
    // RGBA colors can be efficiently encoded in 4 8bit bytes, instead of 4 32bit floats
    {name: 'instanceColors': format: 'uint8normx4'},
  ],

A more advanced use case is interleaving: two attributes access the same buffer in an interleaved way.

  bufferMap: [
    {name: 'particles', attributes: [
      {name: 'instancePositions'},
      {name: 'instanceVelocities'}
    ]
  ],

In the above case case a new buffer name particles is defined and setAttributes() calls will recognize that name and bind the provided buffer to all the interleaved attributes.