OpenGL ES란?

Android는 높은 퍼포먼스를 필요로 하는 2D,3D 그래픽스를 위해 OpenGL ES(Open Graphics Library for Embeded System)를 지원합니다. OpenGL은 3D 그래픽 처리 하드웨어에 대한 표준 소프트웨어 인터페이스를 지정하는 크로스 플랫폼 그래픽 API이며, OpenGL ES는 안드로이드와 같은 임베디드 장치를 위한 가볍고 쉬운 API를 제공합니다. 또한 Android는 여러 버전의 OpenGL ES API를 제공하고 있습니다.

Who should read?

일반적인 앱개발자가 OpenGL까지 알아야 할 필요는 없습니다. 카메라 앱 개발자, 이미지 프로세싱, 게임 개발자가 이 포스팅을 읽는것을 추천합니다. 또는 안드로이드의 View가 내부적으로 어떻게 화면을 표현하는지 궁금하다면 한번 쯤 가볍게 읽어보시는것도 좋을 것 같습니다.

왜 OpenGL ES를 써야 할까요?

게임과 같은 높은 수준의 그래픽을 빠르게(30~60fps) 화면에 그리기 위해서는 일반적인 안드로이드의 위젯으로는 구현하는데 한계가 있습니다. 그렇기 때문에 빠른속도의 반복된 화면 출력이 필요한 경우에는OpenGL을 이용한 빠르게 화면 그리는 작업을 해야하며, GDI쓰레드가 아닌 별도의 쓰레드 사용이 반드시 필요합니다. 

안드로이드에서 지원하는 OpenGL ES 버전

  • OpenGL ES 1.0 과 1.1 – 안드로이드 1.0 이상
  • OpenGL ES 2.0 – 안드로이드 2.0 (API Level 8) 이상
  • OpenGL ES 3.0 – 안드로이드 4.3 (API Level 18) 이상
  • OpenGL ES 3.1 – 안드로이드 5.0 (API Level 21) 이상

OpenGL ES를 위한 프로젝트 설정하기

<!-- 시스템에게 OpenGL ES 2.0이 필요하다는 것을 알려줍니다. -->
<uses-feature android:glEsVersion="0x00020000" android:required="true" />

<!-- 시스템에게 OpenGL ES 3.0이 필요하다는 것을 알려줍니다. -->
<uses-feature android:glEsVersion="0x00030000" android:required="true" />

<!-- 시스템에게 OpenGL ES 3.1이 필요하다는 것을 알려줍니다. -->
<uses-feature android:glEsVersion="0x00030001" android:required="true" />

전부 명시할 필요는 없으며, 사용하는 버전 하나만 매니페스트에 명시하도록 합니다.

OpenGL로 삼각형 만들기

본 프로젝트는 github에서 확인 가능합니다.

연관된 포스팅 목록

1. Android OpenGL ES 2.0의 개요

2. Shader와 Rendering pipeline

3. 삼각형 만들기

4. 도형을 그리는 방식

5. 사각형 만들기

6. Vector와 동차좌표

7. Matrix(행렬)

8. MVP Matrix 만들기

 

카테고리: GraphicsKotlin

0개의 댓글

답글 남기기

Avatar placeholder

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.