지금 opengl es의 스텐실 버퍼를 사용해야하는데,,
웹에 있는 예제들을 돌려볼려고 해도 스텐실이 적용안되네요;;;
혹시 스텐실 버퍼를 사용하고 계신 분 있으시면 도움 좀 주세요~ㅠ_ㅠ
구글링해보니, 안드로이드에서 디바이스마다 스텐실 구현 여부가 다를 수 있다는 글도 봤는데,, 이게 좀 예전 글이라서 ,, open gl es 의 버전이 낮았을 때이지 않을까 싶구요...
혹시 스텐실 버퍼를 사용하기 위해 설정해줘야하는게 또 있는지..
도와주세요~ㅠ_ㅠ
자답합니다...;;
일단 GLSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 8, 8); 을 호출해줘서 스텐실 버퍼의 크기를 잡아줘야합니다.
(기본적으로 스텐실 버퍼의 크기가 0인가 봅니다. 인자가 아마 차례대로 R, G, B, A, depth buffer, stencil buffer .. 일 겁니다... 이건 찾아보면 나오는거라서;; 기억나는대로 적었습니다. 부정확할수도..-_-)
이렇게 해주고나서 draw함수 부분에 아래와 같이 작성합니다.
gl.glColorMask(false, false, false, true);
gl.glClearStencil(0);
gl.glEnable(GL10.GL_STENCIL_TEST);
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT | GL10.GL_STENCIL_BUFFER_BIT);
gl.glStencilFunc(GL10.GL_ALWAYS, 0x1, 0x1);
gl.glStencilOp(GL10.GL_REPLACE, GL10.GL_REPLACE, GL10.GL_REPLACE);
//마스크 영역을 그려줍니다...
gl.glColorMask(true, true, true, true);
gl.glStencilFunc(GL10.GL_EQUAL, 0x1, 0x1);
gl.glStencilOp(GL10.GL_KEEP, GL10.GL_KEEP, GL10.GL_KEEP);
// 마스킹될 영역을 그립니다.
gl.glDisable(GL10.GL_STENCIL_TEST);