본문 바로가기

전체 글1401

[OpenGL ES] 5. 3D 텍스쳐(Texture), 3D 오브젝트 이해하기 [OpenGL ES] 5. 3D 텍스쳐(Texture), 3D 오브젝트 이해하기 TextureOpenGL ES에서 Texture의 존재감은 매우 크며 처음 언급하고자 하는 건 POT다. OpenGL ES는 POT 텍스쳐만을 받아들이는데, 이 텍스쳐는 모두 가로, 세로의 길이가 2의 배수여야 한다. (2, 4, 8, 16, 32, 64... 1024픽셀) 1024의 사이즈는 적당하면서도 보통은 최대 크기를 의미하기도 한다. 따라서 OpenGL ES에서 사용하는 텍스쳐는 다음과 같은 크기여야 한다. - 64 * 128- 256 * 32- 512 * 512 200 * 200, 256 * 100 같은 길이의 텍스쳐는 사용할 수 없다. 이와 같은 제한 사항은 OpenGL ES를 구동시켜야 하는 GPU를 위한 최적.. 2017. 10. 23.
[OpenGL ES] 4. 버퍼 오브젝트(Buffer Object) 알아보기 [OpenGL ES] 4. 버퍼 오브젝트(Buffer Object) 알아보기 Buffer ObjectsBuffer Object는 primitive(기본 도형)의 배열을 저장하는데 최적화 되어있으며 두 종류로 구분된다. 첫번째, VBO는 꼭지점 배열을 저장한다.VBO는 어떤 종류의 원본 데이터라도 복사, 저장하기에 Buffer Object를 생성하면 원본 데이터는 삭제해도 된다. 두번째, IBO는 Index(순서) 배열이며, index들은 VBO의 데이터들을 가리킨다.일반적으로 IBO의 데이터 타입은 Glubyte 또는 Glushort이며, IBO를 만드는 과정은 Frame buffer와 Render buffer를 만드는 것과 비슷하다. Buffer Objects Creation GLvoid glGenBu.. 2017. 10. 22.
[OpenGL ES] 3. 렌더 버퍼(Render Buffers) 이해하기 [OpenGL ES] 3. 렌더 버퍼(Render Buffers) 이해하기 Render Buffer는 OpenGL ES의 Render로부터 넘어오는 이미지의 임시 저장소다.아래는 frame buffer와 관련된 두 가지 기능이다. 1. GLvoid glGenRenderbuffers (GLsizei n, GLuint* renderbuffers)n : 한 번에 몇 개의 render buffer를 만들 것인가.renderbuffers : 생성된 frame buffer의 번호를 저장할 변수. 하나 이상을 만들 때는 배열의 시작점을 넣음. 2. GLvoid glBindRenderbuffer (GLenum target, GLuint renderbuffer)target : 항상 GL_RENDERBUFFER.frame.. 2017. 10. 21.
[OpenGL ES] 2. 메쉬, 라인옵션, 프레임 버퍼 [OpenGL ES] 2. 메쉬, 라인옵션, 프레임 버퍼(Meshe, Lines OptimizationFrame Buffers Meshes and Lines Optimization (메쉬와 라인 옵션) OpenGL ES에서 점point를 그리는(찍는) 방법은 한 가지이지만, 선line과 삼각형triangle을 그리는 방법엔 3가지가 있다. 선을 그리는 방법은 아래다. . normal . strip . loop OpenGL ES에서 삼각형을 (옵션) 그리는 방법 아래다. . normal . strip . fan 어떻게 그리느냐에 따라 속도 향상과 메모리 절약이 가능하다. 지금 다뤄볼 것은 3차원 다각형mesh이다. 여기서는 OpenGL ES 삼각형을 면face이라 부르자. 꼭지점vertex들의 배열을 이용.. 2017. 10. 20.