일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- V3
- pyqt5
- 게임개발
- 파워셀
- C언어
- 설치
- TensorFlow
- 프로그래머
- NPY
- CycleGAN
- 리뷰
- yolo
- 딥러닝
- 개발자
- ctypes
- 논문
- 언어모델
- 이터널리턴
- connx
- python
- 논문리뷰
- 텐서플로우
- 언리얼엔진
- 파이썬
- ChatGPT
- 딜러닝
- 헬스케어
- 호흡분석
- 욜로
- Detectron2
- Today
- Total
사냥꾼의 IT 노트
OpenGL로 배우는 3차원 컴퓨터 그래픽스 개념 정리 - 가시성 판단 본문
■후면 제거
●전면: 법선 벡터가 시점을 향한 면
●후면: 법선 벡터가 시점 반대쪽을 향한 면(시점에서 멀어지는 방향의 법선 벡터를 지닌 면)
●오른손의 법칙: 오른손을 명시된 정점 순으로 감싸 쥐었을 때 엄지 방향
●하나의 면 = 표면(법선 벡터의 방향) + 이면(법선 벡터가 없는 쪽)
○주전자가 뚫린 경우: 후면의 이면 = 표면
■절단 알고리즘
●절단: 물체면 중 가시 부피 내부에 존재하는 면만 걸러내기 위한 작업
●2차원 절단: 윈도우 -> 뷰 포트 -> 시저 박스
●3차원 절단: 가시부피 이용
●절단 다각형: 절단 사각형...
□코헨-서더런드 알고리즘: 선분 절단
●6비트 아웃코드에 의해 절단 연산의 속도를 높인 것 => 2차원 선분을 2차원 사각형을 기준으로 절단
●물체 공간 알고리즘
●4단계 알고리즘
●선분 분할: 왼쪽 위 -> 오른쪽 아래 순서 (임의로)
□리앙-바스키 알고리즘: 내부를 걸치는 경우를 빠르게 처리함
●교차점의 상대적인 위치에 의한 절단 알고리즘 (하변 -> 좌변 -> 상변 -> 우변)
●교차점을 찾아거 제거 혹은 유지함
□서더런드-핫지먼 알고리즘: 다각형을 위한 기법
●절단 다각형을 기준으로 순서대로 절단함 (상변 -> 우변 -> 하변 -> 좌변)
●선분을 연장한 직선을 기준으로 절단 (start poin -> end point)
●정점의 내부 이동 또는 외부 이동 시에 새로운 교차점을 계산하여 추가함
□웨일러-애서톤 알고리즘: 오목 문제점 해결을 위한 기법
●내부에서 외부로 가는 교차점이 추가되면 즉시 그 교차점으로부터 절단 사각형을 따라서 반시계 방향으로 진행함
●분리된 여러 개의 다각형 생성 가능
■지엘의 절단
●서더런드-핫지먼 알고리즘과 유사함 (4차원 절단 좌표계에서 수행)
●깊이 버퍼 테스트: void glDepthFunc
●깊이 버퍼 활성화
※3차원 정규화 장치 좌표계에서 절단을 가하지 않는 이뉴는 시점 뒤쪽에 있는 물체 처리 시 발생하는 오류 때문임
■은면 제거
●Hidden surface removal: 앞 물체에 가려져서 안 보이는 부분을 제거하는 작업 (물체의 깊이 정보를 기준으로 판단)
★뒷면을 제거하는 것이 아닌, 보이지 않는 앞면을 제거하는 것
●페인터 알고리즘: 먼 것에서 가까운 것으로 순차적으로 덧칠하는 기법
●zmax: A B를 zmax 기준으로 그림 -> C와 D는 중첩되지 않으므로 무관 (면의 분할)
●지-버퍼 알고리즘: 화소 공간으로 사상하여 화소 공간 해상도로 은면을 판단하는 기법 => 깊이 값을 비교해 작은 값을 채워넣음
○지-버퍼: 화소별로 깊이를 저장하기 위한 메모리 (if 화소로 사상되는 물체면의 깊이가 현재 지-버퍼의 깊이보다 작으면 지-버퍼와 프레임 버퍼가 동시에 새로운 내용으로 기록됨)
●선형 보간: 정점으로부터 내부점의 깊이 및 컬러를 보간함 (래스터 변환 단계에서 실행)
'OpenGL로 배우는 3차원 컴퓨터 그래픽스' 카테고리의 다른 글
OpenGL로 배우는 3차원 컴퓨터 그래픽스 개념 정리 - 프래그먼트 연산 (0) | 2020.12.07 |
---|---|
OpenGL로 배우는 3차원 컴퓨터 그래픽스 개념 정리 - 텍스처 (0) | 2020.12.07 |
OpenGL로 배우는 3차원 컴퓨터 그래픽스 개념 정리 - 조명과 음영 (0) | 2020.12.07 |
OpenGL로 배우는 3차원 컴퓨터 그래픽스 개념 정리 - 래스터 변환 (0) | 2020.12.07 |