08장 삼각형: 물체를 구성하는 가장 작은 단위
8.1 세 점의 결합
■ 8.1.1 아핀 결합
- 세 점 P1, P2, P3를 아핀 결합하는 경우
- P' = s · P1 + t · P2 + (1 - s - t) · P3 ↔ w = s · u + t · v
- 세 점의 아핀 결합은 2차원 평면을 만든다.
- 네 점 P1, P2, P3, P4를 아핀 결합하는 경우
- x = a · u + b · v + c · w
- 네 점의 아핀 결합은 3차원 공간을 만든다.
■ 8.1.2 컨벡스 결합
- 아핀 결합에서 모든 스칼라 값을 [0, 1] 범위로 한정한 결합을 컨벡스 결합(convex combination)이라고 한다.
- 컨벡스 결합으로 만들어진 영역을 컨벡스 영역(convex region)이라고 한다.
- 컨벡스 영역은 임의의 두 점을 연결해 선분을 만들었을 때 그 선분이 컨벡스 영역 안에 속하는 볼록한 성질을 가진다.
- 세 점 P1, P2, P3를 컨벡스 결합하는 경우
- w = s · u + t · v (0 ≤ s ≤ 1, 0 ≤ v ≤ 1)
- 세 점의 컨벡스 결합은 삼각형을 만든다.
- 네 점 P1, P2, P3, P4를 아핀 결합하는 경우
- x = a · u + b · v + c · w (0 ≤ a ≤ 1, 0 ≤ b ≤ 1, 0 ≤ c ≤ 1)
- 네 점의 컨벡스 결합은 삼각뿔을 만든다.
아핀 결합 | 컨벡스 결합 | |
두 점 | 직선 | 선분 |
세 점 | 평면 | 삼각형 |
네 점 | 공간 | 삼각뿔 |
8.2 무게중심 좌표
- 아핀 결합의 스칼라를 묶어 만든 좌표를 무게중심 좌표(barycentric coordinate)라고 한다.
■ 8.1.2 무게중심 좌표를 활용한 삼각형 내외부 판별
- 내적을 활용한 삼각형의 내외부 판별
- (s, t, 1 - s - t)의 세 값이 모두 [0, 1] 안에 있다면 새로운 점 P3는 삼각형 내부에 있다.
- (s, t, 1 - s - t)의 세 값이 하나라도 [0, 1] 범위 밖에 있다면 새로운 점 P3는 삼각형 외부에 있다.
- 외적을 활용한 삼각형의 내외부 판별
- 벡터 n0, n1, n2와 평면의 법선 벡터 n을 내적한 결과가 모두 0보다 크다면 점 P는 삼각형 내부에 있다.
- 벡터 n0, n1, n2와 평면의 법선 벡터 n을 내적한 결과에 0보다 작은 값이 있다면 점 P는 삼각형 외부에 있다.
■ 8.2.2 무게중심 좌표를 활용한 부가 정보
- 무게중심 좌표의 값은 주어진 픽셀이 삼각형의 세 점으로부터 얼마나 영향을 받는지 파악하는 용도로 활용할 수 있다.
- 정점의 부가 정보와 무게중심 좌표를 활용하여 색상이나 텍스처를 부여할 수 있다.
8.3 메시
- 삼각형을 중심으로 물체에 관련된 정점 정보를 기록한 데이터를 메시(mesh)라고 한다.
- 정점(vertex)은 삼각형을 이루는 각 점의 위치 정보와 색상이나 방향 같은 부가 정보를 묶은 점을 말한다.
- 삼각형의 외곽선만 그려 메시를 표현하는 방법을 와이어프레임(wireframe)이라고 한다.
- 정점 버퍼(vertex buffer)는 메시의 정점 정보를 빠르게 읽기 위해서 메모리에 정점 정보를 일렬로 나열한 배열이다.
- 인덱스 버퍼(index buffer)는 삼각형을 구성하는 정점의 인덱스만 기록한 배열이다.
8.4 텍스처
- 텍스처(texture)는 메시에 이미지를 입히기 위해 변환된 데이터를 말한다.
- 텍스처는 관리 방식을 통일하기 위해 텍스처의 가로, 세로 크기를 1로 정규화한다.
- 텍스처를 구성하는 [0, 1] 범위의 2차원 좌표계를 UV 좌표계라고 한다.
- 텍스처 매핑(texture mapping)은 메시에 이미지를 입히는 작업을 말한다.
- 삼각형을 구성하는 각 픽셀의 무게중심 좌표를 계산한다.
- 이를 정점의 UV 좌표와 선형 보간하여 해당 픽셀의 UV 값을 얻는다.
- 이에 대응하는 텍스처의 색상 정보를 얻어 픽셀의 색상으로 지정한다.
'Computer Science > 게임 수학' 카테고리의 다른 글
게임 수학 | 3부 3차원 콘텐츠 제작 | 11장 외적 (0) | 2023.03.08 |
---|---|
게임 수학 | 3부 3차원 콘텐츠 제작 | 10장 3차원 공간 (0) | 2023.02.27 |
게임 수학 | 2부 콘텐츠 제작 기초 | 09장 게임 엔진 (0) | 2023.02.20 |
게임 수학 | 2부 콘텐츠 제작 기초 | 07장 내적 (0) | 2023.02.17 |
게임 수학 | 2부 콘텐츠 제작 기초 | 06장 아핀 공간 (0) | 2023.02.17 |
댓글