flow-vector
article thumbnail
게임 수학 - 노멀 벡터의 회전
Math/Game Math 2023. 12. 20. 14:29

문제 어떤 벡터 A에 수직한 노멀 벡터 N을 변환할 때, 단순히 변환행렬을 곱해 주면왜곡이 생기는 경우가 있음을 알게 되었습니다. 원인 해당 경우는 벡터 A가 non-uniform scale이 될 경우 였는데 이유는 아래 그림을 보면 쉽게 알 수 있습니다. 해결 결론적으로 해결방법은 변환 행렬의 Inverse-transepose를 곱해주면 해결이 됩니다. 증명은 luna의 introduction to 3d game programming with directx12에서 참고 하였습니다.

게임 수학 - 무게중심 좌표
Math/Game Math 2023. 12. 18. 14:03

“이득우의 게임수학” 책을 읽고 중요하다고 생각하는 부분을 정리한 내용들입니다! 아핀 공간에서 2 점의 아핀 결합을 확장하여 물체를 렌더링하는 기본 단위인 삼각형을 표현하는 방법에 대해 알아보고 삼각형 내부 픽셀을 어떤 색으로 칠할지 결정하는 방법에 대해서도 정리해 본다. 삼각형의 표현 세 점의 결합 3개의 점을 아핀 결하여 평면의 모든 벡터를 나타낼 수 있음 $P^\prime = sP_1 + tP_2 + (1 - s - t)P_3$ $(P^\prime - P_3) = s(P_1 - P_3) + t(P_2 - P_3)$ $\vec{w} = s\vec{u} + t\vec{v}$ u와 v가 선형 독립 관계라면 2차원 실벡터 공간의 모든 벡터를 선형결합으로 만들 수 있음 → 평면 s 와 t의 범위를 [0 ,1..

게임 수학 - 내적(Dot Product)
Math/Game Math 2023. 11. 30. 16:05

“이득우의 게임수학” 책을 읽고 중요하다고 생각하는 부분을 정리한 내용들입니다! 내적 연산이 어떤 기하학적 의미를 가지는지 정리해 보고 주로 사용되는 곳을 정리해 보겠습니다. 내적 벡터의 내적 계산 방법 $\vec{u} = (a, b)$ $\vec{v} = (c, d)$ $\vec{u} \cdot \vec{v} = a c + b d$ 성질 교환 법칙 성립 계산 과정에서 스칼라 곱과 덧셈으로 이루어져 있으므로 덧셈에 대한 분배 법칙 성립 같은 벡터를 내적 했을 때 벡터 크기의 제곱 내적과 삼각함수와의 관계 두 벡터의 사잇각에 대한 cos 함수와 비례하는 관계를 가짐 $\vec{u} = (a, b)$ $\vec{v} = (c, d)$ $\vec{u} \cdot \vec{v} = \left\vert \vec{..

게임 수학 - 아핀 공간
Math/Game Math 2023. 11. 28. 17:37

“이득우의 게임수학” 책을 읽고 중요하다고 생각하는 부분을 정리한 내용들입니다! 어떤 물체의 크기, 회전, 전단 변환을 위해 선형변환을 2x2 정방 행렬로 만들어 보고 행렬 곱을 통해 나타내 보았다. 하지만 이동에 대해서는 행렬 곱이 아닌 벡터의 덧셈을 활용해서 구현을 했었다. 아핀 공간내에서는 행렬 곱을 통해 이동을 나타낼 수 있기 때문에 이에 대해서 정리해 보고자 한다. 아핀 공간 이동 변환을 위한 아핀 공간 동일 차원에서 행렬 곱을 통한 이동변환 행렬 설계가 안되는 이유 선형성을 만족 시킬수 없기 때문 이동 변환 후 기저 벡터는 원점을 지나지 않음 전단 변환의 성질을 활용한 이동변환 $\begin{bmatrix} 1 & a \\ 0 & 1 \\ \end{bmatrix} \cdot \begin{bma..

게임 수학 - 행렬
Math/Game Math 2023. 11. 22. 12:33

“이득우의 게임수학” 책을 읽고 중요하다고 생각하는 부분을 정리한 내용들입니다! 책에서는 행렬을 가상세계의 변환 도구라고 소개하고 있는데 와닿는 말이라고 생각했다. 사용자의 인풋에 따라 빠르게 공간을 변화시켜서 보여줄때 행렬을 사용하여 계산의 이점을 가져간다고 생각한다. 이전에 미쳐 설명하고 넘어 가지 못한 선형성이라는 개념에 대해서 좀 더 자세히 정리를 해보는 것을 목표로 하려고 한다. 나머지 개념들로는 행렬에서의 연산, 각종 변환 행렬 및 역행렬에 대해서 정리해보려고 한다. 행렬 선형성(Linearity) → 선형 대수학에서 어떤 함수가 2가지 명제를 만족할 때 선형성을 가진다고 함 가법성 (Additivity) $f(x_1 + x_2) = f(x_1) + f(x_2)$ 1차 동차성 (Homogene..

게임 수학 - 삼각함수
Math/Game Math 2023. 11. 21. 11:05

“이득우의 게임수학” 책을 읽고 중요하다고 생각하는 부분을 정리한 내용들입니다! 벡터의 덧셈, 곱셈 연산을 통해 직선적인 움직임을 표현 했다면 ‘회전’을 위해 삼각함수를 사용할 수 있다. 회전은 원의 궤적을 따라 이동하는 움직임 이기 때문에 원과 밀접한 연관이 있는 삼각함수가 이용이되고 이에 대해 알아보고자 한다. 삼각 함수 삼각비 직각 삼각형에서 두 변을 뽑아 각가의 비례관계를 나타냄 삼각함수 직각 삼각형을 데카르트 좌표계에 배치하여 사잇각의 범위를 실수 전체로 확장한 대응 관계 단위 원(반지름의 길이가 1)을 사용하면 쉽게 표현가능함 삼각함수의 성질 sin, cos 함수는 -1, 1사이를 반복하는 주기 함수임 $360^\circ$주기로 반복 됨 cos 함수는 좌우 대칭 (짝함수, 우함수) sin 함수..

article thumbnail
게임 수학 - 벡터
Math/Game Math 2023. 11. 16. 14:13

“이득우의 게임수학” 책을 읽고 중요하다고 생각하는 부분을 정리한 내용들입니다! 이전에 수의 구조와 함수에 대한 지식을 바탕으로 1차원에서 벗어나 2차원에서 물체를 표현할 수 있는 공간인 벡터 공간에 대해서 정리를 해보려고 하고 벡터 공간 내 원소인 벡터와 벡터 사이의 연산에 대해서 정리해보려고 한다. 벡터 공간과 벡터 벡터 공간(vector space) 정의 두개 이상의 실수를 곱집합으로 묶어 형성된 집합 (공리적 집합론 관점) 벡터 (vector) 정의 벡터 공간의 원소 표현 v = (x, y) 벡터 공간의 연산 벡터 끼리의 덧셈 벡터 공간에서 각 축에 대해 독립적으로 평행이동 하는 작업 스칼라와 벡터의 곱셈 기좀 벡터와 평행하고 원점을지나는 직선을 만듬 벡터의 크기와 이동 크기 수직선에서와 동일하게..

article thumbnail
게임 수학 - 수의 구조 및 함수
Math/Game Math 2023. 11. 15. 12:34

“이득우의 게임수학” 책을 읽고 중요하다고 생각하는 부분을 정리한 내용들입니다! 오늘 정리할 부분은 중, 고등학교 수학에서 배웠던 내용인데 지금와서 다시 보니 그때는 무조건 외우기만 했던 기억이 난다. 왜 필요한지도 모르고 어떤 의미 인지도 모르고 받아들였던 내용같은데 지금에서라도 중요함을 알게 되었다는 걸 다행으로 생각했다. 가장 와닿았던 문장은 “모니터에 표현되는 가상의 공간의 본질은 결국 체계화된 수들이 만들어내는 질서에 불과하다” 라는 내용이었다. 이러한 수의 체계를 바탕으로 현실 세계의 질서를 가상의 세계에 구현해 내면 재밌을 것 같다는 생각으로 간단한 오브젝트 렌더러를 만들어 보는 프로젝트를 시작하게 되기도 하였다. (해당 프로젝트 관련 내용은 다른 글에서 써볼예정..) 수와 집합 수집합을 정..