콘텐츠로 이동
Search

Android:OpenGLES

lastmod 2018-08-17created 2014-03-179 edits

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 ↩