|
http://blog.naver.com/guzayoul?Redirect=Log&logNo=100037197099
◆ glEnable(GL_DEPTH_TEST) : 깊이 검사
물체를 하나 그리고 그 앞쪽으로 물체를 하나 더 그리면 처음에 그렸던 물체에 나중에 그린
물체가 가리는 현상이 생길 수 있는다.
이때 사용하는 함수가 glEnableGL_DEPTH_TEST) 이다. 이 함수를 사용하면 정상적으로 앞
쪽에 있는 물체가 뒷쪽에 있는 물체를 가리게 될 것이다.
◆ glEnable(GL_DITHER) : 분리된 색상을 사용해서 넓은 범위의 색상표현
회색을 표현할 때 굳이 회색을 쓰지 않고 검은색 도트와 흰색 도트만을 적절히 배치해서 표현할 수 있다.
높은 해상도에서는 굳이 DITHERING을 사용할 필요가 없지만 8비트 또는 16비트 색상을 사용
하는 경우에는 유용하게 사용될 수 있겠다. (아주 미세하게 관찰할 경우 분리된 도트가 보이겠
지만 보통은 그렇게 보는 경우는 없을 것이므로 유용한 방법이라 할 수 있겠다.)
◆ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
DEPTH_BUFFER를 두어서 픽셀별로 깊이 값을 저장하도록 하였다. 이를 이용해서 어떤 물체를 그리고자 할때 그앞에 물체가 있으면 있을때 깊이를
비교하여 DEPTH가 작은 삼각형쪽은 그려지고, DEPTH가 큰 사각형쪽은 그리지 않게 할 수 있
게되는 것이다. (동일한 좌표의 픽셀이 있을때 깊이에 따라 그려야 할지 말아야 할지 선택하게
되는 것이다.)
이상으로부터 glClear로 이 두 버퍼를 지우는 것이 3차원 공간에 그려졌던 그림들을 지우는 역할을 한다고 할 수 있겠다.
[파라미터] mask GL_COLOR_BUFFER_BIT :컬러쓰기를 위해 활성화된 버퍼 GL_DEPTH_BUFFER_BIT : 깊이 GL_ACCUM_BUFFER_BIT :누적버퍼 GL_STENCIL_BUFFER_BIT
[참고] glClear 은 윈도우의 비트평면 영역을 glClearColor, glClearIndex, lgClearDepth, glClearStencil, glClearAccum함수 등에의해 선택된 값으로 실행 glDrawBuffer로 한번에 하나 이상의 버퍼를 선택해서 여러버퍼를 동시에 지울 수 있다.
1. gl.glClearColor(0.0f, 0.0f, 1.0f, 1.0f); //Blue Background 2. gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); // 그려졌던 그림들을 지우는 역할 (바탕색적용)
|