Skip to content

Android:NDK:OpenGLES

Android의 OpenGLES를 NDK에서 구현하는 방법에 대한 설명.

How to use

JNI에서 사용하기 위하여 관련 라이브러리를 추가해야 한다. 관련 라이브러리 목록은 아래와 같다.

LOCAL_LDLIBS := -lEGL -lGLESv1_CM -lOpenSLES -lGLESv2

OpenGLES 2.0 사용하기

Android에서는 별도의 설정없이 OpenGLES을 사용할 경우 1.0 버젼 기준으로 동작되게 된다. 1

경고

OpenGLES 1.x와 OpenGLES 2.0은 호환되지 않는다.

그리고 Android.mk 빌드 설정 파일에 LOCAL_LDLIBS옵션에 -lGLESv2를 추가해 줘야 한다. C/C++에서는 #include <GLES2/gl2.h>#include <GLES2/gl2ext.h> 두개의 헤더를 include 하면 opengl es 2.0을 사용할 수 있다. OpenGLES 정보 표시방법은 알래와 같다:

static void PrintGLString(const char *name, GLenum s)
{
    const char *v = (const char *) glGetString(s);
    LOGI(TAG, "GL %s = %s\n", name, v);
}

static void printOpenGLInfo() 
{
    PrintGLString("Version", GL_VERSION);       // OpenGLES Version 표시 
    PrintGLString("Vendor", GL_VENDOR);     // Chip set Vendor
    PrintGLString("Renderer", GL_RENDERER); // 그래픽 칩셋 모델 정보.
    PrintGLString("Extensions", GL_EXTENSIONS); // 좀더 자세한 정보를 보실수 있습니다.
}

Android OpenGLES NDK 강좌목록

아래 파일을 확인하면 된다.

  • NDK OpenGL 01 프로젝트 준비: Berabue_android_ndk_opengl_01.pdf
  • NDK OpenGL 02 해상도 지정하기: Berabue_android_ndk_opengl_02.pdf
  • NDK OpenGL 03 텍스쳐 입히기: Berabue_android_ndk_opengl_03.pdf
  • NDK OpenGL 04 쓰레드 생성: Berabue_android_ndk_opengl_04.pdf
  • NDK OpenGL 05 2의 제곱수가 아닌 텍스쳐 출력하기: Berabue_android_ndk_opengl_05.pdf
  • NDK OpenGL 06 내맘대로 텍스쳐: Berabue_android_ndk_opengl_06.pdf

See also

Favorite site

References


  1. OpenGLES 2.0 버전을 사용하는 예제는 APIDemo에서 Graphic -> OpenGL ES -> OpenGL ES 2.0을 참고하시면 된다.