Game Development, 게임개발/게임 수학,물리

아핀 공간, Affine Space - 3 [게임수학]

게임이 더 좋아 2021. 4. 1. 07:02
반응형
728x170

 

 

이제 마지막이다.

3D 게임에 가장 많이 쓰이는 삼각형에 대해 공부해보자

 

왜 삼각형이냐..?

사각형이 아니라?

사실 사각형이 삼각형 2개다.

가장 작은 도형이 삼각형이란 얘기다.

삼각형보다 큰 도형들은 다 쪼개버릴 수 있다.

 

또한 삼각형은 세 점이 항상 동일 평면 위에 존재할 수 있는 유일한 도형이다.

** 삼각대가 왜 다리가 3개?? -> 평면을 만들 수 있어서 중심을 잡는 것

 

삼각형에 색을 칠하면 그제서야 우리는 볼 수 있다.

 

삼각형이 이루는 3차원 모델 함 배워보자

 


 

위키백과

 

선들로 닫혀진 공간이 바로 삼각형이 된다.

 

++ 사실 다각형이라고 하는 경우가 더 많다. (Polygon)

 

이 폴리곤을 이루는 점을 Vertex 라고 부르고 삼각형은 볼록다각형, convex polygon 이라고 한다.

 

왜 볼록이라고 하냐?

1. 이어진 두 선분이 이루는 각이 180도 보다는 작거나 같다.

2. 임의의 두 꼭지점을 이은 선은 다각형의 내부에 있거나 다각형을 이루는 선 중에 하나다.

 

 

그냥 용어니까 알고 넘어가자

 


 

저번에도 평면의 앞에 있는지 뒤에 있는지가 중요하듯이

여기서도 어떠한 점이 삼각형의 안에 있는지 밖에 있는지도 중요하다.

A,B,C는 삼각형의 점이고 삼각형 안에 점 D가 있다고 가정하자

 

동일 평면상에 있는지는 이전 글에서 4개의 점에 대해 확인하는 법을 배웠다.

하지만 다르게 해보자.

 

 

아무튼 이 4점으로 부터 다시 벡터 6개가 정의된다.

 

u 벡터들은 A,B,C 순서대로 이름을 붙였고

 

 

v벡터들은 반시계방향으로 A부터 구했다.

 

외적은 다음과 같이 했다.

 

만약 점 D가 삼각형의 안에 있다면

외적한 결과값 w1~w3이 같아진다.

다같이 시계방향으로 외적 순서가 되었다.

 

 

하지만 밖에 있을 경우

한 벡터의 방향이 반대로 된다.

 

외적한 결과는 외적하는 순서에 따라 결정된다고 했다.

 

외적한 결과가 달라지므로. 구분할 수가 있게 된다.

즉, 아래 조건을 만족하면 삼각형 안에 점이 존재하는 것이다.

 

 


 

 

하지만 여기서 매개변수가 쓰인다.

면을 다룰 때 괜히 일반방정식과 매개변수 방정식 둘다 배우는 것이 아니다.

면을 표현할 때는 이게 더 편했지만

이 같이 삼각형 내부범위를 조사하는 일에는 매개변수가 더 좋다고 한다.

 

세 점으로 이 식을 유도하자.

 

직선의 방정식을 매개변수에 범위를 주어 선분으로 만들거나 했던 것을 생각하자.

즉, 면의 방정식도 매개변수에 범위를 주어 삼각형으로 만들 수 있다는 것이다.

 

 

s+t < 1 의 조건을 만족하면 점 A, B, C가 이루는 삼각형이 되고

삼각형 안의 모든 점들을 점 A와 어떤 벡터와의 합으로 표현된다면

그 벡터는 s = B-A,  t =  C-A 벡터가 된다 (기저벡터 -> 아핀조합)

 

 

 

즉, D가 삼각형 안에 점이 있다면 

점 D를 표현했을 때 -> A와 기저벡터의 덧셈

s + t의 합이 1보다 작게 나올 것이다.

 

 

하지만 s,t를 구하는 것은 쉽지 않다.

때문에 식에 각각 u와 v 벡터를 내적해준다.

 

s,t에 대해서 정리하면 이렇게 나온단다.

 

s+t를 조사하면 된다.

 

이와 마찬가지로 일반 방정식으로도 풀 수 있으나 매개변수 방정식이 더 빠르기에(아핀조합)

이렇게 이용한다.

 

이건 이렇다고 알고 넘어가자

이해는 추상적으로 해도 괜찮다.

 

 

 

728x90
반응형
그리드형