본문 바로가기

openGL es

[ Android Opengl es ] 두 Texture 이미지가 겹쳤을 때 Opengl을 사용하여 두가지 이미지를 출력했을 때 항상 나오는 문제이다!!! 바로!두 Texture 이미지가 겹쳤을 때, 사각형 형태의 검은 부분이 보여지는 현상이다. 위와 같이 검은 부분이 생긴다. 예전에는 z좌표를 뒤로 당겨 같은 선 라인에 있지 않으면 문제가 되지 않는다고 생각했다.하지만, 테스트를 해본 결과 이유는 단 하나였다.gl.glEnable(GL10.GL_DEPTH_TEST); //Enables Depth Testinggl.glDepthFunc(GL10.GL_LEQUAL); //The Type Of Depth Testing To Do바로 이 Depth 속성을 Enable을 시키면 이미지가 겹칠 경우 위와 같은 문제가 발생한다. 따라서 만약 3D형태가 아닌 이미지로 갈 경우에는, 꼭!gl... 더보기
[ Android ] Live wallpaper 프로세스 제거 특정 Live wallpaper를 설정하고 다른 Wallpaper를 선택하거나, 잠깐 Live wallpaper를 미리보기만 보고 나왔는데 프로세스가 남아있는 경우가 있습니다. 이유를 찾기 위해 여러가지 구글링을 해본 결과, 1. 제가 전에 적어 놓은 Activity_service를 제거 시키는 방법 http://gogorchg.tistory.com/entry/Android-%EC%96%B4%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%EA%BA%A0%EB%81%97%ED%95%98%EA%B2%8C-%EC%A2%85%EB%A3%8C%ED%95%98%EB%8A%94-%EB%B2%95 2. onSurfaceDestroyed() 함수내에서 stopSelf() 함수를 불러 .. 더보기
[ Android Opengl es 2.0 ] RenderMonkey 사용 시 Opengl es 문제 Shader Freeware인 RenderMonkey를 사용 하여 미리 Shader Test를 해볼려고 했지만, 현재 최신 버전인 1.82를 사용하여 프로젝트를 만들어 아무리 실행을 해봐도 검은 화면만 계속 나온다. 다운로드 : http://developer.amd.com/archive/gpu/rendermonkey/Pages/default.aspx 뭔가 RenderMonkey와 그래픽 카드와의 충돌이 있는 것 같다. 그래서 구글링 해본 결과~~ 좋은 해결 방법을 발견해서 이렇게 글을 옮긴다. NVemulate 툴을 먼저 다운 받는다. 다운로드 : http://developer.nvidia.com/nvemulate NVemulate를 실행 시키고 다음 과 같이 설정을 해놓는다. 그리고 RenderMonk.. 더보기
[ Android Opengl es 2.0 ] LiveWallpaper 에서 사용 시 , onSurfaceCreated 문제 이 문제는 제가 코딩을 잘못 하거나, 샘플 소스를 잘못 이용한 걸 수도 있지만, 경험의 유추했을 때 결론이 나와. 이렇게 글을 남깁니다. 혹시 잘못된 부분이 있으면 주저 말고 댓글을 달아주시면 감사하겠습니다.^^ Opengl es 2.0을 사용하여 개발하는 중.. 화면을 껏다가 다시 켜면.. 뭔가 속도가 느려지다가 결국 Out of memory 오류와 함께 팅겨져 버립니다. 역시나 Out of memory 부분은 Texture 부분이 문제 이죠. 전 onSurfaceCreated 함수 내에 Texture를 셋팅 하는 소스를 코딩하였습니다. loadTexture ( mContext.getResources().openRawResource( R.raw.background) ,"mBgTexId" ); 디버깅을 .. 더보기
[ Android Opengl es ] 화면이 하얗게 보이는 현상. Nexus S 이상 때부터 Opengl을 사용할 때, 본래 Bitmap 이미지의 크기를 2의 배수로 지정해주지 않으면, 그 Object를 하얗게 뿌려버리더군요. 그래서 다음과 같은 함수를 만들어서 사용을 합니다. private int getMinPowerByTwo(int value) { int result = 2; do { result *= 2; } while(result < value); return result; } 위 함수는 계속 2씩 곱해 나가다가 value 값 보다 커졌을 경우, 그 값을 리턴 시켜주는 거지요. 즉, 500x168 이라는 이미지가 있을 경우에는 위 함수를 통하여 우선 512 x256의 크기로 Bitmap을 리사이징 하고 Texture에 저장을 시킨 후, Texture 크기를 50.. 더보기
[ Android Opengl es ] Blur효과 아직 실험해보지는 않았다. 이것도 역시 Bitmap의 컬러값을 이용하여,변경하는 함수이다. function BlurHorizontal (source, dest, radius) { for (y = 0; y < height; ++y) { for (x = 0; x < width; ++x) { total = 0 for (kx = -radius; kx 더보기