통합검색
· 마을서비스란?  · 포럼마을  · 일반마을  · 테마마을  · 마을랭킹  · 활동왕
· 덱스퍼트란?  · TECBOX   · PRSBOX   · 이용안내  
· DEXT제품군  · 솔루션베이  · S/W & ESD 컴포넌트
· 프로그램베이 
· LiveSeminar  · LiveConference
Visual C++ 포럼마을 입니다.
  마을등급 Visual C++   이 마을은 포럼마을 입니다이 마을은 자유가입제 마을 입니다 마을소개 페이지로 이동 전입신청
마을촌장촌장 나성훈 주민 33540 since 2006-12-29
우리마을 공지사항
질문&답변
강좌&팁
자유게시판
자료실
앨범
개인게시판
마을 게시판
등록된 마을 게시판이
없습니다.
랑데브 게시판
칼럼 게시판
개발자 고충상담
Dev Talk
자유토론방
벼룩시장
재나미 우스개
구인/프로젝트 정보
사람인 채용 게시판
  고객지원 게시판
마이 데브피아
 나의 e-Money 내역
 활동왕 My Page
 스크랩한 게시글보기
 쪽지관리
 주소록관리
 일정관리

 질문&답변
 OpenGL 질문 두개입니다.  | Graphic 2005-08-11 오후 3:38:08
냐암 (aheejin)  냐암님께 메시지 보내기냐암님을 내 주소록에 추가합니다.냐암님의 개인게시판 가기 번호: 536914  / 읽음:353

OpenGL을 쓰고 있는데요. 초보질문 두개입니다.;

 

1. OpenGL로 직육면체를 GL_QUADS 모드로 각 6개 면의 vertex를 일일이 지정해주는 방식으로 그렸는데요.

(정육면체면 함수 하나로 되지만 직육면체는 그게 안돼서; )

직육면체에서 뒤쪽 안 보이는 면의 선을 지울 수 있는 방법이 없나요?

그러니까

      ------

    /|     /|

   ------  |   이런 모양을    

   | |___|_|

   |/     |/

   -----

 

      ------

    /      / |

   ------  |   이렇게 바꾸고 싶다는 겁니다 -0-;;;

   |       | |

   |       |/

   ------

 

glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT )

glEnable(GL_DEPTH_TEST)

이렇게 해서 작업중인데, 저 선을 직접 지우는 방법 외에 방법이 있는지 궁금합니다.

저 뒷 선을 직접 지워버리면, 입체를 회전시켰을 때는 또 난감해져서요;;;

 

 

2. 위의 직육면체에서, glPolygonMode(GL_BACK, GL_LINE) 이런 옵션을 안 주면

그냥 각 여섯 면이 모두 칠해져서 나타나잖아요.

그리고 키보드로 각방향 회전이 되게 만들었는데요.

근데 이 경우에, glut 라이브러리의 glutCreateWindow 함수로 윈도우를 따로 만들어서 그리면

아무 이상없이 깨끗하게 그려지는데요. (비록 1번 문제로 뒷 선은 안 지워지지만)

그냥 MFC의 document view에다가 ClientDC를 써서 그리면 굉장히 화면이 조잡하고

회전에 따라서 막 선이 사라졌다 나타났다 합니다. 어떻게 더이상 설명하기가 힘든데;

정말 혹시나-_- 해서 DC 종류를 PaintDC WindowDC 등으로 이거저거 바꿔봤지만 같습니다.;;

이 문제를 어떻게 해결할 방법이 있을까요? 새 윈도우를 glut으로 띄우지 않고 도큐먼트 view에

직접 그리고서요.

 

미리 감사드립니다.

이 글에 답변 등록하기
 [답변]답변입니다^^ 2005-08-12 오전 10:54:37
프리천사 (prousers)  프리천사님께 메시지 보내기프리천사님을 내 주소록에 추가합니다.프리천사님의 개인게시판 가기 번호: 537046  

OPEN GL 이제 시작하셨나봐요^^

 

저두 시작한지 얼마 안됐지만 다행이 님이 물어보신 1번의 답은 해드릴수 있겠네요...

 

우선 님이 원하신건 3D의 효과를 극대화하기위해 보이지 않는 부분은 그리지 않는 것을 말하는 것이지요...

 

님이 말하신대로 뒤에 선을 지워버리게 되면 앵클 회전시에 분명 뒤에부분은 사라져서 난감하게되지요...

 

앵글이 돌아두 뒤에 부분만 보이지 않게하기위해선...

 

다음과 같이 처리해주셔야 합니다.

 

// 창과 깊이 버퍼를 지운다.

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

 

// 플래그가 설정되어 있다면 깊이 테스팅을 켠다.

glEnable(GL_DEPTH_TEST);    // 키기^^

glDisable(GL_DEPTH_TEST);   // 끄기

 

이것이 머하는 거시냐 하면요^^;

 

물론 님두 잘아시겠지만 깊이 테스팅을 해주는 것이지요...

 

답변이 늦어 벌써 해결하셨을지도 모르겠지만^^

 

깊이테스트를 세팅하게되면 OPEN GL이 자동으로 z좌표 기준으로 뒤에있는 버텍스들을 제거해주게 됩니다.

 

그래서 사람눈에는 앞에 물에의 버텍스와 연결된 면들만 보이는 것이져...

 

그럼 즐공하시구여^^

 

읽어봤는데 2번은 도저히 무슨말인지 이해가 안되서;;

 

죄송합니닷;;

이 글에 답변 등록하기
목록 보기   지금 보고 계시는 글을 회원님의 my Mblog >> 스크랩에 넣어두고 다음에 바로 보실 수 있습니다.  
회사소개  |   개인정보취급방침  |  제휴문의  |   광고문의  |   E-Mail 무단수집거부  |   고객지원  |   이용안내  |   세금계산서
사업자등록번호 안내: 220-81-90008 / 통신판매업신고번호 제 2010-서울강남-00026호
서울시 강남구 논현동 87-2 미래빌딩 5층 / TEL. 02_6719_6200 / FAX. 02-6499-1910 / 대표: 홍영준
Copyright ⓒ (주) 데브피아. All rights reserved.