void glVertexAttribPointer(GLuint index,
GLint size,
GLenum type,
GLboolean normalized,
GLsizei stride,
const GLvoid * pointer);
index : Vertex shader의 layout(location=x)에서 x에 해당한다.
size : Vertex Attrib를 구성하는 멤버의 개수. 가령, Vertex position 속성이라면 x,y,z,w로 구성된다면 4, x,y,z로 구성된다면 3.
그러므로, 1,2,3,4 값만 가능.
type : Vertext Attribㄹ 구성하는 멤버의 타입. Vertex position이 float로 구성된다면, GL_FLOAT. 그 외에도 다양한 타입이 존재.
normalized : 타입이 GL_FLOAT나 GL_HALF_FLOAT가 아닐 경우, unsigned 경우 0..1, signed일 경우 -1..1의 float로 변경하여 vertex shader에 값을 전달한다.
stride : pointer가 가리키는 배열에서 다음 구성요소까의 byte수.
가령, Vertex position x,y,z,w의 배열이고, 타입이 float라면 4(x,y,z,w)*4(float의 size) = 16이됨.
Vertex position x,y,z의 배열이고, 타입이 float라면 3(x,y,z)*4(float의 size) = 12임.
pointer : Vertex attrib의 배열 주소.
반응형
'OpenGL ES' 카테고리의 다른 글
Shader와 Uniform으로 데이터 공유하기 (0) | 2015.10.08 |
---|---|
Fragment란 무엇인가? (0) | 2015.10.07 |
OpenGL ES 3.0 도서 (0) | 2015.10.07 |