Methods
-
创建索引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 : 无效的索引数据类型。
- glGenBuffer
- glBindBuffer with
ELEMENT_ARRAY_BUFFER
- glBufferData with
ELEMENT_ARRAY_BUFFER
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:
-
-
创建顶点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:
-
DeveloperError : 必须指定
或 ,但不能同时指定。 -
DeveloperError : buffer大小必须大于零。
-
DeveloperError : 无效使用。
- glGenBuffer
- glBindBuffer with
ARRAY_BUFFER
- glBufferData with
ARRAY_BUFFER
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:
-