본문 바로가기

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. 그 외에도 다양한 타입이 존재. norma.. 더보기
Shader와 Uniform으로 데이터 공유하기 Shader와 Uniform을 이용하여 데이터를 공유하는 방법을 소개한다. Vertex shader/fragment shader 모두에 적용이 가능하다. 1. default uniform block을 이용하는 방법 예제 Vertex shader의 코드는 다음과 같다. #version 300 es layout(location = 0) in vec4 vPosition; uniform vec3 shiftLocation; uniform mat4 shiftLocationMat; void main() { gl_Position = shiftLocationMat * (vPosition + vec4(shiftLocation, 0)); } shiftLocation이라는 x,y,z 벡터와 4x4 행렬인 shiftLocati.. 더보기
Fragment란 무엇인가? Fragment Shader에서 과연 Fragment란 무엇일까?Fragment Shader의 결과값이 색상정보인 것으로 보아서 pixel에 해당하는 것이 fragment이겠거니 했다.아래 글의 첫 문장으로 보면, 픽셀의 색상을 만들어 내기 위한 데이터를 말하는 것이다.https://en.wikipedia.org/wiki/Fragment_(computer_graphics) 더보기
OpenGL ES 3.0 도서 http://www.opengles-book.com/위의 사이트의 도서를 참고하여 스터디를 진행한다.요즘 책은 github에 소스코드를 오픈하니 공부하기에는 딱 좋다.https://github.com/danginsburg/opengles3-book/ 더보기