zoukankan      html  css  js  c++  java
  • OpenGL 自制API (1)

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

    参数:
    pointer
    指定一个指针,指向数组中第一个顶点属性的第一个组件。初始值为0。
    stride
    指定连续顶点属性之间的偏移量。如果为0,那么顶点属性会被理解为:它们是紧密排列在一起的。初始值为0。
    normalized
    指定当被访问时,固定点数据值是否应该被归一化(GL_TRUE)或者直接转换为固定点值(GL_FALSE)。
    type
    指定数组中每个组件的数据类型。可用的符号常量有GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT,GL_UNSIGNED_SHORT, GL_FIXED, 和 GL_FLOAT,初始值为GL_FLOAT。
    size
    指定每个顶点属性的组件数量。必须为1、2、3或者4。初始值为4。(梦维:如position是由3个(x,y,z)组成,而颜色是4个(r,g,b,a))
    index
    指定要修改的顶点属性的索引值
     
    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 也会被存为客户端状态
    要启用或者禁用顶点属性数组,调用glEnableVertexAttribArray和glDisableVertexAttribArray传入参数index。如果启用,那么当glDrawArrays或者glDrawElements被调用时,顶点属性数组会被使用。

     

    glDrawArrays(GLenum mode, GLint first, GLsizei count);

    函数原型:GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count);
    相似功能的函数是 glDrawElements。
    参数说明:
    mode,绘制方式,OpenGL2.0以后提供以下参数:GL_POINTS、GL_LINES、GL_LINE_LOOP、GL_LINE_STRIP、GL_TRIANGLES、GL_TRIANGLE_STRIP、GL_TRIANGLE_FAN。
    first,从数组缓存中的哪一位开始绘制,一般为0。
    count,数组中顶点的数量。
    提供绘制功能。当采用顶点数组方式绘制图形时,使用该函数。该函数根据顶点数组中的坐标数据和指定的模式,进行绘制。
    调用该函数之前需要,调用glEnableVertexAttribArray、glVertexAttribPointer等设置顶点属性和数据。
  • 相关阅读:
    在tortoiseSVN上将trunk的代码merge到branch上去
    ajax提交后完全不进入action直接返回错误
    Eclipse "IOConsole updater" has encounter a problem
    jquery判断checkbox是否选中及改变checkbox状态[转]
    JS的Data类型格式化(转)
    Eclipse内置Tomcat的配置
    firebug下载时出现there was an error loading firebug
    Mac下Tomcat启动时乱码
    ibatis插入数据后返回自增长的主键
    给Mac下的iTerm2增加配色
  • 原文地址:https://www.cnblogs.com/biubiubiubiu/p/4342351.html
Copyright © 2011-2022 走看看