[openGL] offset
- Library/openGL
- 2011. 8. 9.
1. Polygon Offset 란?
같은 z-order를 갖는 polygon 중 어느 한쪽이 다른 쪽 위에 나타나야 할 필요가 있을 때, 한 쪽을 다른 쪽보다 '조금 앞으로 오도록' 할 수 있다. 이를 polygon offset이라고 하는데, OpenGL에서는
void glPolygonOffset(GLfloat factor, GLfloat units);
함수를 통해 polygon offset 를 사용할 수 있다.
[출처] glPolygonOffset|작성자 상상공작
2. 왜하는가?
왜 하는가에 대해서 좀 이야기를 해봅시다.
그냥 OpenGL 에서 Polygon 을 그리게 되면 Stitching 현상이 발생하게 된다.
이를 Polygon Offset 를 함으로써 아래의 그림과 같이 된다.
책을 조금 더 살펴보자면, 레스터화 시킨다. 라는 말이나온다.
이론정리는 머리속으로만!
인터넷을 아무리 찾아보더라두! 그래도 책은 찾아봐야겠죠? ㅎ
책 찾아봅시다~^^ (정리하기 정말 귀찮아서 그런거 아니에요 ㅎ)
Stitching 현상 발생 / Polygon Offset 으로 보정
다른 예제를 살펴보겠습니다.
원하는 결과!! / Stitching 현상 발생
참고 : Stitching 단어 뜻 ( URL : http://endic.naver.com/enkrEntry.nhn?entryId=2d61d3d7dee24e93bcc8412f1c4d0e84&query=stitching)
- 한줄로 이어진 바늘 땀
( 뭐 물론 다들 알고 있을 듯한 단어겠지만, 그냥 정리해두었습니다. )
3. 어떻게 하는가?
- 요거는 찾아보니, 간단하게 많이 있었습니다.
OpenGL 을 저보다 많이 안다고 생각하고( 전 모르겠습니다. 라는 의미. )
glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glEnable(GL_POLYGON_OFFSET_FILL); glPolygonOffset(1.0, 1.0); glCallList(list); glDisable(GL_POLYGON_OFFSET_FILL); glDisable(GL_LIGHTING); glDisable(GL_LIGHT0); glColor3f(1.0, 1.0, 1.0); glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); glCallList(list); glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
이렇게 되어있는데 이유는 잘모르겠습니다. -_-; 내용도 제대로 안읽어보아서...
단지, 먼저
1. 폴리곤 그리기전에 Offset fill 로 설정
2. Draw polygon
3. 폴리곤 offset fill 해제
4. glPolygonMode 설정
5. line 그리기
6. glPolygonMode 제 설정
순서대로 ...
간단한 예제는 어디에???
URL : http://www.zeuscmd.com/tutorials/opengl/15-PolygonOffset.php 를 살펴보자.
포스팅이 정말 잘되어있다.
소스는 혹시나~
파일 업로드가 안되서 링크로...링크 깨지면 난 몰라라~~~
우띠~ 왜 이미지 맨날 경로 틀어지는거지????
Reference
[1] his n That ( http://etstnt.egloos.com/5170827 )
- OpenGL 의 offset 에 대해서 정리가 되어있다. 영문으로 되어 있으며 한번씩 읽어보길 바라는 맘입니다.
[2] Wiki fracktal ( http://wiki.fracktal.kr/doku.php?id=%EC%88%98%EC%97%85%3Aopengl%3A%ED%8F%B4%EB%A6%AC%EA%B3%A4_%EC%98%A4%ED%94%84%EC%85%8B )
- 위키 처럼 정리가 되어있다. 뭐 읽어봐두 정확히 잘 모르겠다. 그냥 해보면서 아는거겠지란 생각! 그래도 잠조해서 보도록 하자.
[3] ZEUS ( http://www.zeuscmd.com/tutorials/opengl/15-PolygonOffset.php )
- Polygon Offset 에 대한 영문설명이 적혀 있다. 그리고 여기에 예제소스가 있다. 돌려보면 모른다. 설명을 읽어보아야 안다. 꼭 읽어보자.
[4] 상상공작소 (http://blog.naver.com/softcool?Redirect=Log&logNo=100013289689 )
- openGL 의 polygon offset 의 간단한 설명, ( 들어가지 않아도 제가 위에 설명 해두었습니다. )
[5] 정리하기 힘들어서 링크만!
- http://wiki.fracktal.kr/doku.php?-id=%EC%88%98%EC%97%85%3Aopengl%3A%EC%95%88%ED%8B%B0%EC%95%A8%EB%A6%AC%EC%96%B4%EC%8B%B1
- http://wiki.fracktal.kr/doku.php?id=%EC%88%98%EC%97%85%3Aopengl%3A%ED%8F%B4%EB%A6%AC%EA%B3%A4_%EC%98%A4%ED%94%84%EC%85%8B
- http://www.allegro.cc/forums/thread/590317
- http://profs.sci.univr.it/~colombar/html_openGL_tutorial/en/06depth_014.html
- http://diehard98.tistory.com/127
- http://cafe.naver.com/corea9.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=314&
- http://blog.naver.com/philipousys?Redirect=Log&logNo=130083922003
[1] his n That ( http://etstnt.egloos.com/5170827 )
- OpenGL 의 offset 에 대해서 정리가 되어있다. 영문으로 되어 있으며 한번씩 읽어보길 바라는 맘입니다.
[2] Wiki fracktal ( http://wiki.fracktal.kr/doku.php?id=%EC%88%98%EC%97%85%3Aopengl%3A%ED%8F%B4%EB%A6%AC%EA%B3%A4_%EC%98%A4%ED%94%84%EC%85%8B )
- 위키 처럼 정리가 되어있다. 뭐 읽어봐두 정확히 잘 모르겠다. 그냥 해보면서 아는거겠지란 생각! 그래도 잠조해서 보도록 하자.
[3] ZEUS ( http://www.zeuscmd.com/tutorials/opengl/15-PolygonOffset.php )
- Polygon Offset 에 대한 영문설명이 적혀 있다. 그리고 여기에 예제소스가 있다. 돌려보면 모른다. 설명을 읽어보아야 안다. 꼭 읽어보자.
[4] 상상공작소 (http://blog.naver.com/softcool?Redirect=Log&logNo=100013289689 )
- openGL 의 polygon offset 의 간단한 설명, ( 들어가지 않아도 제가 위에 설명 해두었습니다. )
[5] 정리하기 힘들어서 링크만!
- http://wiki.fracktal.kr/doku.php?-id=%EC%88%98%EC%97%85%3Aopengl%3A%EC%95%88%ED%8B%B0%EC%95%A8%EB%A6%AC%EC%96%B4%EC%8B%B1
- http://wiki.fracktal.kr/doku.php?id=%EC%88%98%EC%97%85%3Aopengl%3A%ED%8F%B4%EB%A6%AC%EA%B3%A4_%EC%98%A4%ED%94%84%EC%85%8B
- http://www.allegro.cc/forums/thread/590317
- http://profs.sci.univr.it/~colombar/html_openGL_tutorial/en/06depth_014.html
- http://diehard98.tistory.com/127
- http://cafe.naver.com/corea9.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=314&
- http://blog.naver.com/philipousys?Redirect=Log&logNo=130083922003
'Library > openGL' 카테고리의 다른 글
[OpenGL] OpenGL Study 2 일차 (0) | 2011.08.09 |
---|---|
[OpenGL] OpenGL Study 1 일차 (0) | 2011.08.09 |
[OpenGL] OpenGL Study 0 일차 (0) | 2011.08.09 |
[OpenGL] OpenGL Study 0 일차 (0) | 2011.08.08 |
[OpenGL] OpenGL Study 0 일차 (0) | 2011.08.08 |