Computer Sciences(21)
-
[게임 수학] #15 | 게임 엔진(Game Engine)
*인프런 강의를 듣고 공부한 글입니다. 1. 로컬 공간과 월드 공간로컬 공간(Local Space) "하나의 물체를 그리는 데 사용하는 공간" 입니다. 어떤 하나의 물체는 여러 개의 점들이 모여서 형성되는데, 이러한 물체를 그리기 위해서는 원점을 중심으로 각 점의 상대적인 위치를 지정해야 합니다. 2차원 평면을 기준으로 하게 된다면 원점은 \((0, \ 0, \ 1)\) 이 될 것이고, 물체를 형성하는 점들은 이 원점을 기준으로 상대적인 위치에 배치되겠지요. 즉, 물체가 곧 세상의 중심인 셈입니다. 월드 공간(World Space)"게임 스테이지를 구성하는 데 사용되는 별도의 공간"입니다. 게임은 하나의 공간에 여러 물체가 배치되어 있고, 주인공이 움직이면서 공간을 탐험해야 합니다. 그런데 로컬..
2023.11.28 -
[게임 수학] #14 | 텍스처 매핑(Texture Mapping)
*인프런 강의를 듣고 공부한 글입니다. 1. 무게중심 좌표의 활용무게중심 좌표를 구하고, 각 좌표값의 범위를 모두 0 이상 1 이하로 설정한다면 삼각형 내부에 있는 점이라는 걸 보장할 수 있다는 걸 알아봤습니다. 이러한 용도 외에도 무게중심 좌표를 통해 생성한 점이 삼각형 내부에서 해당 픽셀이 3개의 점 중에 얼만큼의 영향을 받고 있는지에 대한 영향력을 나타내는 데에도 유용하게 사용됩니다. 즉, 세 점에 대해 영향을 얼만큼 받는지에 대한 가중치들을 통해 삼각형 내부 색상을 칠하는 데 응용할 수 있습니다. 삼각형 칠하기무게중심 좌표를 생성하는 방정식, \( P' = s \cdot P_1 + t \cdot P_2 + (1-s-t) \cdot P_3 \) 에서 각 계수들은 가중치 값을 나타냅니다. 만약..
2023.11.28 -
[게임 수학] #13 | 삼각형(Triangle)
*인프런 강의를 듣고 공부한 글입니다. 1. 세 점의 아핀 조합 (Affine combination of Three points)이전에 두 점의 아핀 조합에서 계수의 합이 1이 되어야 한다는 걸 봤었습니다. 우리가 설정한 아핀 공간 내 규칙을 어기지 않으려면 마지막 차원의 값이 1이 되어야 하기 때문이었죠. 이러한 개념은 세 점의 아핀 조합으로 확장되어도 똑같이 적용됩니다. $$ P' = s \cdot P_1 + t \cdot P_2 + (1-s-t) \cdot P_3 $$ 위 식의 계산 결과는 항상 아핀 공간의 점을 보장 받게 되는 것이죠. 위의 식을 변형하여 다음과 같은 공간 형태로 나타낼 수도 있습니다. $$ P' - P_3 = s(P_1 - P_3) + t(P_2 - P_3) $$$$ \ri..
2023.11.27 -
[게임 수학] #12 | 직선(Line)
인프런 강의를 듣고 공부한 글입니다. 1. 아핀 조합(Affine Combination)이전에 아핀 공간에는 점과 이동 벡터가 존재하고, 점 + 점 연산은 불가능하다고 했었습니다. 하지만, 스칼라 값을 앞에 보조로 사용하여 곱하면 점 + 점 연산이 가능해집니다. $$ a\cdot P_1 +b\cdot P_2 = ? $$ \( P_1, \ P_2 \) 가 2차원의 점이라고 가정할 경우, 위 조합식은 다음과 같이 전개됩니다. $$ a(x_1, y_1, 1) + b(x_2, y_2, 1) = (ax_1+bx_2, \ ay_1 +by_2, \ a + b) $$ 이때, 아핀 공간이므로 마지막 차원의 값이 반드시 1이 되어야 점이 될 수 있습니다. 즉, \( a + b = 1 \) 이 되어야 가능하다는 말이지..
2023.11.26 -
[게임 수학] #11 | 내적(Dot Product)
인프런 강의를 듣고 공부한 글입니다. 1. 벡터의 내적(Dot Product)이란?벡터에는 벡터와 벡터의 덧셈, 벡터와 스칼라의 곱셈과 같은 연산을 통해 새로운 벡터를 생성해낼 수 있는 시스템이 존재합니다. 하지만 이것만으로는 부족하여 좀 더 응용할 수 있는 연산들을 수학자들이 추가하게 되었는데, 그것이 바로 벡터의 내적과 외적입니다. 여기에서는 내적에 대해서만 알아보도록 하겠습니다. 내적 연산벡터의 내적 연산은 벡터 내에서 같은 요소들끼리 서로 곱한 후, 더해주는 연산입니다. 예를 들어, \(v_1 = (a, b) \) 와 \(v_2 = (c, d) \) 와 같은 2차원 벡터를 서로 내적한다고 하면, 두 벡터의 대응되는 각 요소인 \(a\) 와 \(c\) , 그리고 \(b\) 와 \(d\) 를 다음..
2023.11.25 -
[게임 수학] #10 | 아핀 공간(Affine Space)
인프런 강의를 듣고 공부한 글입니다. 1. 아핀 공간이 필요한 이유이동 변환의 문제점컴퓨터 그래픽스에서 중요한 기능 중 하나가 바로 이동 기능이지만, 선형 변환 개념으로는 이러한 이동을 구현할 수가 없습니다. 선형 변환이라는 것은 항상 원점으로부터 출발해서 어디까지 이어지는 지에 대한 화살표 개념이기 때문이죠. 이러한 이유로, 선형 변환을 통해 다음과 같이 기저 벡터를 원점으로부터 분리해 이동시킬 수는 없는 노릇입니다. 행렬의 관점으로 본다면, 다음과 같은 행렬은 존재하지 않는 것이죠. $$ \begin{bmatrix}a & b\\c& d \end{bmatrix}\begin{bmatrix}x \\y \end{bmatrix}=\begin{bmatrix}x+e \\y+f \end{bmatrix} $$..
2023.11.24