Android:OpenGLES
Android 에서 OpenGLES를 사용하는 방법에 대한 정리.
Android에서 Opengl ES 2.0 사용시 주의사항
무작정 ES 2.0의 기능들을 사용하게 되면 아래와 같은 에러로그를 보게 된다.
위 에러로그는 아직 2.0을 사용할 수 없다는 뜻으로, 해당 GLSurfaceView에서 아래와 같이 설정해야 한다.
Print Text
안드로이드에서 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
- 안드로이드 애플리케이션 교육 자료 10: Graphics, 2D and 3D with OpenGL 1
- 안드로이드, TextureView 에 대한 이야기
- Android Developer OpenGL 번역
- OpenGL ES 1.0 예제
- 안드로이드 OpenGL ES 2.0 소개 및 강좌 2
- Android Bitmap을 Opengl의 Texture로 적용할때 주의사항
- [추천] 쉐이더 개념에 대한 설명
- GLSL에서 Geometry Shader 사용하기
- GPU GLSL Geometry Shader
- 본격적인 OpenGL ES의 활용
- 오른손 vs 왼손 좌표계
- [추천] Android Lesson Four: Introducing Basic Texturing
- Texture loading on Android Open GL ES 2.0
- Android OpenGL ES 2.0: Render To Texture
- MultiTextureRenderer.java - opengles-book-samples
- Android example source code file (GLES20TriangleRenderer.java)
- OpenGL ES 2.0 Q&A by myself
- 안드로이드 OpenGL ES 2.0 삼각형 그리기
- The OpenGL ES Shading Language
- [추천] Visual glBlendFunc + glBlendEquation Tool
- OpenGL ES 2.0 glDepthFunc, glBlendFunc
- Android Opengl ES: 두 개의 Texture 이미지가 겹쳤을 때
- Android Opengl ES: 2.0 Texture Setting
- Hello Triangle: An OpenGL ES 2.0 Example
- OpenGL ES 2.0 Shader best practices
- [추천] 안드로이드 초기 세팅 및 삼각형 그리기
- [추천] 안드로이드 OpenGL 마치 2D 좌표계인 것처럼 그림 그리기
- OPENGL ES 2.0 #3. 텍스쳐링(Texturing)
- [추천] JNI를 이용한 OpenGL 3D 그래픽
- 안드로이드 OpenGL APIs(Draw, Texture, Rotate)
- OpenGL ES 2.0 텍스처링(Textureing)
- Android Bitmap2Texture class - OpenGL ES 1.0 Render To Texture extension alternative
- Android Bitmap을 Opengl의 Texture로 적용할때
- 안드로이드 Android NDK OpenGL ES LoadTexture 관련 3
- [추천] Using SurfaceTexture in Android
- crossle/MediaPlayerSurface
- Capture screen of GLSurfaceView to bitmap
- 05-20 14:07:53.294: E/libEGL(25779): call to OpenGL ES API with no current context (logged once per thread)
- Android 3D 모델의 투명배경처리 CubeRederer.java
- Android GLSurfaceView 배경 투명하게