1️⃣ 좌표계
💜 3차원 물체의 표현
- 경계면 표현
- 평면 다각형의 집합으로 나타냄
- 메쉬(Mesh), 표면 메쉬(Surface Mesh), 다각형 메쉬(Polygon Mesh), 표면 다각형(Surface Polygon), 다각형(Polygon)
- 곡면 표현 위해 필요한 다각형 수 = 곡면의 곡률 정비례
- 곡률 ↑. 평면 다각형 ↑
- 사각형 메쉬
- 평면 보장 못함
- 삼각형 메쉬 (주로 사용)
- 평면 보장, 2배의 드로잉 속도
- 렌더링
- 화면에 물체를 그려내는 작업
- 와이어프레임 렌더링
- 드로잉 속도 빠름
- 솔리드 렌더링
- 외형 확인
- 와이어프레임 렌더링
- 화면에 물체를 그려내는 작업
💜 벡터 공간
- 스칼라
- 크기 O, 방향 X
- ex. 온도, 무게
- 교환법칙
- ab=ba
- 결합법칙
- abc=(ab)c=a(bc)
- 역원법칙
- a*b=1(항등원) 이 되는 b가 반드시 존재함 (곱셈 예)
- 덧셈
- a+0=a (항등원: 0)
- 곱셈
- a*1=a (항등원: 1)
- 크기 O, 방향 X
- 벡터
- 크기 O, 방향 O
- ex. 속도, 바람 세기
- 모든 벡터는 역벡터가 존재
- 스칼라를 벡터에 곱할 수 있음
- 벡터의 합 = 벡터
- 벡터 공간
- 주어진 벡터로부터 파생되는 모든 벡터의 집합
- 벡터로 표현할 수 있는 공간
- 크기 O, 방향 O
💜 어파인 공간
- 어파인 공간
- 점을 벡터의 동족으로 취급 → 벡터 공간 확장
- 어파인 연산
- 벡터와 벡터의 덧셈 (뺄셈)
- 스칼라와 벡터의 곱셈 (나눗셈)
- 점과 벡터의 덧셈(뺄셈) → 어파인에서 추가!
- 선분 표현
- V = P + (1/2)(Q - P)
- V = P + t (Q - P) = (1 - t)P + (t)Q (0 ≤ t ≤ 1)
- 어파인 공간에서 어파인 합
- 점의 계수 합이 1이 되는 경우
- 점의 덧셈은 각 점 앞의 계수 합이 1일때만 허용
- (1-t)+t=1
💜 좌표축과 좌표계
- 좌표계
- 3차원 공간의 물체의 위치 → 주어진 좌표계를 기준으로 표시
- 직교 좌표계
- 점의 좌표 : 기준이 되는 좌표계에 따라 달라짐
- 좌표계에 따라 같은 좌표라도 다른 값이 될 수 있음 → 좌표계 통일에 주의할 것
- 기반 벡터
- 자신의 합성에 의해 다른 모든 벡터를 표시할 수 있는 벡터
- 선형 독립을 이루어야 함
- 선형 독립 : 공간상에 서로 직각으로 교차하는 벡터
- 벡터 p = 4V1 + 2V2
- p = p’
- 선형 독립 : 공간상에 서로 직각으로 교차하는 벡터
- 차원
- 점의 위치를 표현하기 위한 기반 벡터의 수
- 기반 벡터 2개 = 2차원
- 기반 벡터 3개 = 3차원
- 좌표계
- 원점과 기반 벡터로 구성되는 프레임
- Ex. 3차원 좌표계 = (r, V1, V2, V3)
- 원점
- 어파인 공간에서 기반 벡터 시작점을 일치시킨 곳
- 점 p = r + 4V1 + 2V2 + V3: 원점이 필요
- c 의 경우 반드시 원점일 필요는 없음을 나타냄
- 원점과 기반 벡터로 구성되는 프레임
- 점의 위치를 표현하기 위한 기반 벡터의 수
💜 동차 좌표
- 3차원 좌표를 4개의 요소로 표현하는 것
- 벡터와 점의 표현은 다름
- 벡터 : v = 4 V1 + 2 V2 + V3
- 점 : P = r + 4V1 + 2V2 + V3 (기준점 존재)
- 차원을 하나 올린 채, 동일 방법으로 표현하는 법
- 벡터 : v = 4V1 + 2V2 + V3 + 0r = (4, 2, 1, 0)
- 점 : P = 4V1 + 2V2 + V3 + 1r = (4, 2, 1, 1)
2️⃣ 기하변환
💜 기하변환
- 기하 변환
- 물체 변환 or 좌표계 변환의 기본
- 행렬로 표현
- 이동, 회전, 크기조절 등
💜 2차원 이동
- x' = 1 * x + 0 * y + Tx * 1
- y' = 0 * x + 1 * y + Ty * 1
💜 3차원 이동
💜 2차원 회전
💜 3차원 회전
- 회전축 기준의 회전으로 정의
- 반 시계 방향의 회전각
💜 크기 조절
- 균등 크기 조절 vs 차등 크기 조절
💜 전단
3️⃣ 복합 변환
💜 복합 변환
- 크기조절(S1) 후, 결과 물체를 회전(R1)한 후, 다시 크기조절(S2)
- P' = S2ㆍR1ㆍS1ㆍP
- 행렬 곱셈의 순서에 유의
- 배치 순서 역순, 계산 순서 순차
- P' = CㆍP 복합행렬 C는 한번만 계산. 모든 정점에 적용
- C = S2ㆍR1ㆍS1 (복합행렬)
- 원점 기준 회전 vs 중심점 기준 회전
- 중심점 기준 회전
- 피벗이 좌표계 원점에 일치하도록 물체를 이동한다.
- 물체를 원점 기준으로 축 주위로 회전한다.
- 회전된 물체를 ➀번에서 이동한 방향의 반대 방향으로 이동한다.
- 중심점 기준 회전
💜 이동 후 회전과 회전 후 이동
- 교환법칙이 성립 X
- 이동 & 회전 =/ 회적 & 이동
- RᆞT와 TᆞR은 일반적으로 서로 다른 결과
- 물체 인스턴스
- 변환된 물체 하나하나를 원래 물체의 인스턴스라고 함
- 크기조절 → 2. 회전 → 3. 이동 순으로 변환
- 이렇게 해야 계산량이 제일 줆
- 물체 중심인 pivot과 원점이 일치한 상태 → 이를 일치시키기 위한 변환 불필요
- C = TᆞRᆞS
- 변환된 물체 하나하나를 원래 물체의 인스턴스라고 함
💜 반사
- 축을 기준으로 물체를 대칭적으로 반사시키는 변환
💜 y=x 기준의 반사
- 복합 변환
💜 구조 왜곡 변환
- 테이퍼링
- z에 따라 x, y의 크기조절
- 휨(Bending)
- 축을 따라 물체가 휨
- 비틀림(Twisting)
- z에 따라 회전각 증가
💜 변환의 분류
- 체 변환
- 이동 변환, 회전 변환
- 물체 자체의 모습은 불변
- 유사 변환
- 강체 변환 + 균등 크기조절 변환, 반사 변환
- 물체면 사이의 각이 유지
- 변의 크기는 변하지만 각은 유지
- 물체 내부 정점 간의 거리가 일정 비율로 유지
- 어파인 변환
- 유사 변환 + 차등 크기 조절 변환, 전단 변환
- 물체의 타입이 유지
- 직선→직선, 다각형→다각형, 곡면→곡면
- 평행선 보존
- 변환 행렬의 마지막 행 항상 (0, 0, 0, 1)
- 원근 변환 (안배움 걍 대충 알기)
- 평행선이 만남
- 소실점이 생김
- 직선이 직선으로 유지
- 변환 행렬의 마지막 행이 (0, 0, 0, 1) 아님
- 평행선이 만남
- 선형 변환
- 어파인 변환 + 원근 변환
- 선형 조합으로 표시되는 변환
- x' = ax + by + cz에서 x'는 x, y, z 라는 변수를 각각 상수 배 한 것을 더한 것
💻 Reference
'IT > 컴퓨터그래픽스' 카테고리의 다른 글
[Chapter 03] OpenGL로 배우는 3차원 컴퓨터 그래픽스 (0) | 2024.04.02 |
---|---|
[Chapter 02] OpenGL로 배우는 3차원 컴퓨터 그래픽스 (0) | 2024.04.02 |
[Chapter 01] OpenGL로 배우는 3차원 컴퓨터 그래픽스 (0) | 2024.04.01 |