본문 바로가기

OpenGL ES

glVertexAttribPointer 사용법

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