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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM