Skip to content

Android:OpenGLES

Android 에서 OpenGLES를 사용하는 방법에 대한 정리.

Android에서 Opengl ES 2.0 사용시 주의사항

무작정 ES 2.0의 기능들을 사용하게 되면 아래와 같은 에러로그를 보게 된다.

called unimplemented OpenGL ES API

위 에러로그는 아직 2.0을 사용할 수 없다는 뜻으로, 해당 GLSurfaceView에서 아래와 같이 설정해야 한다.

setEGLContextClientVersion(2);

안드로이드에서 OpenGL을 사용하여 Text를 출력하는 방법은 아래와 같다.

Text Bitmap 만들기.

Bitmap bitmap = Bitmap.createBitmap( 64, 64, Bitmap.Config.ARGB_4444 );
Canvas canvas = new Canvas( bitmap );
bitmap.eraseColor( 0 );
Paint textPaint = new Paint();
textPaint.setTextSize( 18 );
textPaint.setAntiAlias( true );
textPaint.setARGB( 0xff, 0xff, 0xff, 0xff );
textPaint.setTextAlign( Paint.Align.LEFT );
textPaint.setTextScaleX( 0.5f );
canvas.drawText( str, 0.f, 15.f , textPaint);

Bitmap Texture 에 bind 하기.

gl.glGenTextures( 1, mTextures, 0 );
gl.glBindTexture( GL10.GL_TEXTURE_2D, mTextures[ 0 ] );
gl.glTexParameterf( GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST );
gl.glTexParameterf( GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR );
gl.glTexParameterf( GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_REPEAT );
gl.glTexParameterf( GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_REPEAT );
GLUtils.texImage2D( GL10.GL_TEXTURE_2D, 0, bitmap, 0 );
bitmap.recycle();

Texture 입히기.

gl.glEnableClientState( GL10.GL_VERTEX_ARRAY );
gl.glEnableClientState( GL10.GL_TEXTURE_COORD_ARRAY );
gl.glVertexPointer( NUMBER_OF_AXIS, GL10.GL_FLOAT, 0, mImageRectVertexBuffer );
gl.glBindTexture( GL10.GL_TEXTURE_2D, mTextures[ 0 ] );
gl.glTexCoordPointer( 2, GL10.GL_FLOAT, 0, mUVBuffer );
gl.glDrawElements( GL10.GL_TRIANGLES, INDICES.length, GL10.GL_UNSIGNED_SHORT, mIndicesBuffer);

Android opengles 강좌목록

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

  • Android OpenGL 01 기본 구조 작성: Berabue_android_opengl_01.pdf
  • Android OpenGL 02 삼각형, 사각형 그리기: Berabue_android_opengl_02.pdf
  • Android OpenGL 03 텍스쳐 입히기: Berabue_android_opengl_03.pdf
  • Android OpenGL 04 기본 소스 정리: Berabue_android_opengl_04.pdf
  • Android OpenGL 함수 설명: Berabue_android_opengl_functions.pdf

See also

classes

Favorite site

Guide

FAQ

References


  1. Android_app_tutorial10_graphics_2d_and_3d_with_opengl.pdf 

  2. Android_opengles_2.0_introduction_and_lecture.pdf 

  3. Opengles_loadtexture_relation.pdf