Buffer

new SuperMap3D.Buffer()

Methods

staticSuperMap3D.Buffer.createIndexBuffer(options)IndexBuffer

创建索引buffer,其中包含 GPU 控制内存中的键入索引。

索引buffer可以附加到顶点数组,以选择渲染Context的顶点。Draw 可以使用整个索引buffer或由偏移量和计数定义的索引buffer的子集来呈现。
Name Type Description
options Object 具有以下属性的对象:
Name Type Description
context Context 创建buffer的上下文。
typedArray ArrayBufferView optional 类型数组,包含要复制到buffer的数据。
sizeInBytes Number optional 以字节为单位定义buffer大小的数字。 如果未给出 options.typedArray 则必须填写。
usage BufferUsage 指定buffer的预期使用模式。在某些 GL 实现中,这可能会严重影响性能。参见 BufferUsage
indexDatatype IndexDatatype buffer中索引的数据类型。
Returns:
索引buffer,准备连接到顶点数组。
Throws:
  • DeveloperError : 必须指定任意一个选项。typearray或options.sizeInBytes,但不是两者都有。
  • DeveloperError : IndexDatatype.UNSIGNED_INT 需要 OES_element_index_uint,而本系统不支持 OES_element_index_uint。请检查 context.elementIndexUint。
  • DeveloperError : 以字节为单位的大小必须大于零。
  • DeveloperError : 无效使用。
  • DeveloperError : 无效的索引数据类型。
Examples:
// Example 1. Create a stream index buffer of unsigned shorts that is
// 16 bytes in size.
var buffer = Buffer.createIndexBuffer({
    context : context,
    sizeInBytes : 16,
    usage : BufferUsage.STREAM_DRAW,
    indexDatatype : IndexDatatype.UNSIGNED_SHORT
});
// Example 2. Create a static index buffer containing three unsigned shorts.
var buffer = Buffer.createIndexBuffer({
    context : context,
    typedArray : new Uint16Array([0, 1, 2]),
    usage : BufferUsage.STATIC_DRAW,
    indexDatatype : IndexDatatype.UNSIGNED_SHORT
});
See:

staticSuperMap3D.Buffer.createVertexBuffer(options)VertexBuffer

创建顶点buffer,其中包含 GPU 控制内存中未键入的顶点数据。

顶点数组通过解释一个或多个顶点buffer中的原始数据,定义顶点的实际构成,如位置、法线、纹理坐标等。
Name Type Description
options Object 具有以下属性的对象:
Name Type Description
context Context 创建buffer的上下文。
typedArray ArrayBufferView optional 类型数组,包含要复制到buffer的数据。
sizeInBytes Number optional 一个定义buffer大小的Number类型值,以字节为单位。如果未给出options.typedArray,则必须提供。
usage BufferUsage 指定buffer的预期使用模式。在某些 GL 实现中,这可能会严重影响性能。参见 BufferUsage
Returns:
顶点buffer,准备连接到顶点数组。
Throws:
Examples:
// Example 1. Create a dynamic vertex buffer 16 bytes in size.
var buffer = Buffer.createVertexBuffer({
    context : context,
    sizeInBytes : 16,
    usage : BufferUsage.DYNAMIC_DRAW
});
// Example 2. Create a dynamic vertex buffer from three floating-point values.
// The data copied to the vertex buffer is considered raw bytes until it is
// interpreted as vertices using a vertex array.
var positionBuffer = buffer.createVertexBuffer({
    context : context,
    typedArray : new Float32Array([0, 0, 0]),
    usage : BufferUsage.STATIC_DRAW
});
See: