zoukankan      html  css  js  c++  java
  • glVertexAttribPointer

    glVertexAttribPointer

    发布者: Seven's - 2012/01/03 - 分类:OpenglES文档/手册/API

     

    Name

    glVertexAttribPointer — 定义顶点属性数组

    C Specification

    void glVertexAttribPointer( GLuint index,
      GLint size,
      GLenum type,
      GLboolean normalized,
      GLsizei stride,
      const GLvoid * pointer);
     

    Parameters

    index

    指定要修改的顶点属性的索引值

    size

    指定每个顶点属性的组件数量。必须为1、2、3或者4。初始值为4。(梦维:如position是由3个(x,y,z)组成,而颜色是4个(r,g,b,a))

    type

    指定数组中每个组件的数据类型。可用的符号常量有GL_BYTEGL_UNSIGNED_BYTEGL_SHORT,GL_UNSIGNED_SHORTGL_FIXED, 和 GL_FLOAT,初始值为GL_FLOAT。

    normalized

    指定当被访问时,固定点数据值是否应该被归一化(GL_TRUE)或者直接转换为固定点值(GL_FALSE)。

    stride

    指定连续顶点属性之间的偏移量。如果为0,那么顶点属性会被理解为:它们是紧密排列在一起的。初始值为0。

    pointer

    指定一个指针,指向数组中第一个顶点属性的第一个组件。初始值为0。

    Description

    glVertexAttribPointer 指定了渲染时索引值为 index 的顶点属性数组的数据格式和位置。size指定每个属性值的组件数量且必须为1、2、3、4之一。type指定每个组件的数据格式,stride指定了一个属性到下一个属性之间的步长(这就允许属性值被存储在单一数组或者不同的数组中)。当数组中的值被访问并被转换至浮点值时,如果normalized被设置为GL_TRUE,意味着整数型的值会被映射至区间[-1,1](有符号整数),或者区间[0,1](无符号整数),反之,这些值会被直接转换为浮点值而不进行归一化处理。

    如果一个名称非零的缓冲对象被绑定至GL_ARRAY_BUFFER目标(见glBindBuffer)且此时一个定点属性数组被指定了,那么pointer被当做该缓冲对象数据存储区的字节偏移量。并且,缓冲对象绑定(GL_ARRAY_BUFFER_BINDING)会被存为索引为index的顶点属性数组客户端状态(GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING);(Also, the buffer object binding (GL_ARRAY_BUFFER_BINDING) is saved as generic vertex attribute array client-side state (GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) for index index.)

    当一个顶点属性数组被指定时,除了当前的顶点数组缓冲对象绑定,sizetypenormalizedstride, 和 pointer 也会被存为客户端状态

    要启用或者禁用顶点属性数组,调用glEnableVertexAttribArrayglDisableVertexAttribArray传入参数index。如果启用,那么当glDrawArrays或者glDrawElements被调用时,顶点属性数组会被使用。

    Notes

    glDrawArrays或者glDrawElements被调用时,每个顶点属性数组初始状态是禁用的,不会被访问。

    glVertexAttribPointer一般在客户端实现。

    Errors

    GL_INVALID_ENUM错误:如果 type 不是可接受的值。

    GL_INVALID_VALUE错误: 如果 index 大于等于 GL_MAX_VERTEX_ATTRIBS.

    GL_INVALID_VALUE错误: 如果 size 不是 1, 2, 3, 或 4.

    GL_INVALID_VALUE错误: 如果 stride 小于零.

    Associated Gets

    glGet 传入参数 GL_MAX_VERTEX_ATTRIBS

    glGetVertexAttrib 传入参数 index 和 GL_VERTEX_ATTRIB_ARRAY_ENABLED

    glGetVertexAttrib 传入参数 index 和 GL_VERTEX_ATTRIB_ARRAY_SIZE

    glGetVertexAttrib 传入参数 index 和 GL_VERTEX_ATTRIB_ARRAY_TYPE

    glGetVertexAttrib 传入参数 index 和 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED

    glGetVertexAttrib 传入参数 index 和 GL_VERTEX_ATTRIB_ARRAY_STRIDE

    glGetVertexAttrib 传入参数index 和 GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING

    glGet 传入参数 GL_ARRAY_BUFFER_BINDING

    glGetVertexAttribPointerv 传入参数 index 和 GL_VERTEX_ATTRIB_ARRAY_POINTER

  • 相关阅读:
    SharePoint 创建 Lookup 类型的Site Column解决跨站问题
    Thinking In Design Pattern——MVP模式演绎
    SharePoint自动化部署,利用SPSD工具包
    SharePoint自动化部署,利用PowerShell 导出/导入AD中的用户
    64位内核第十四讲,获取系统滴答数与日期时间
    内核中通过进程PID获取进程的全部路径
    内核中根据进程Pid获取卷的全目录
    内核中PID_HANDLE_OBJECT等互相转换
    获取指定句柄的类型号.
    获取句柄的类型以及对应的ID序号
  • 原文地址:https://www.cnblogs.com/monnRedShine/p/3129544.html
Copyright © 2011-2022 走看看