게임수학(10)
-
[게임 수학] #21 | 깊이 버퍼(Depth Buffer)
*인프런 강의를 듣고 공부한 글입니다. 1. 깊이 버퍼(Depth Buffer)`깊이 버퍼(Depth Buffer)`는 카메라로부터 얼마나 깊은 곳에 있는지는 파악할 수 있는 데이터라고 할 수 있습니다. 3차원 공간에서 다수의 물체들을 그릴 때, 그리는 순서를 고려하지 않으면 어떤 물체가 앞에 있고 뒤에 있는지 구분할 수가 없습니다. 앞에 있어야 할 물체(1)가 먼저 그려지고, 뒤에 있어야 할 물체(2)가 나중에 그려지면, 사실상 우리 눈으로 봤을 때는 (1) 물체가 (2) 뒤에 있는 것처럼 보이기 때문이죠. 이러한 문제가 발생하는 이유는 각 물체마다 카메라로부터 얼만큼 뒤에 있는지에 대한 기준치가 없기 때문입니다. 이러한 기준치를 정하기 위해 깊이 버퍼라는 것을 도입했으며, 이 깊이 버퍼 값에 ..
2023.12.07 -
[게임 수학] #20 | 원근 투영(Perspective Projection)
*인프런 강의를 듣고 공부한 글입니다. 1. 원근 투영 변환(Perspective Projection Transformation) 맛있는 음식이 나왔을 때, 카페에 가서 디저트와 음료를 시켰을 때 등등 일상 생활 속에서 우리는 많은 순간 카메라로 사진을 찍곤 합니다. 하지만, 현실 세계는 3차원이고 카메라로 찍게 되는 사진은 2차원인데 어떻게 우리가 이질감을 느끼지 않고 있는 사실 그대로 받아들일 수 있는 걸까요? 바로 원근감이 형성되었기 때문입니다. 이에 따라, 가상 세계를 만들고 있는 우리 또한 이 원근감을 형성해주는 작업을 해줘야 한다는 의미가 되며, 오늘은 이러한 작업에 대한 원근투영 변환을 알아보는 시간을 가지도록 하겠습니다. 원근 투영 변환의 원리3차원 공간은 3개의 축이 서로 직교하는..
2023.12.06 -
[게임 수학] # 17 | 3차원 공간
*인프런 강의를 듣고 공부한 글입니다. *여기에 나오는 예시들은 오른손 좌표계에 Y-up 체계를 기준으로 합니다. 1. 3차원 공간왼손 좌표계와 오른손 좌표계2차원 공간은 \(x, \ y\) 축 2개만 사용하면 간단하게 구현할 수 있었는데, 3차원 공간같은 경우에는 축(\(z\))이 하나 더 늘어나게 됩니다. 3개의 축으로 구성된 3차원 공간을 어떻게 설계하는지에 따라, 앞으로 전개할 수학식이나 응용 프로그램의 사용 방식이 달라지게 되므로, 이 체계를 확실하게 잡는 것부터 먼저 시작해야 합니다. 이러한 체계에는 왼손 좌표계와 오른손 좌표계가 있습니다. 일반적으로 모니터를 바라봤을 때, 오른쪽을 \(x\) 축, 위쪽을 \(y\) 축으로 고정해두는 편인데, 이 나머지 \(z\) 축이 모니터 안 쪽 너머로..
2023.11.30 -
[게임 수학] #16 | 뷰 공간(View Space)
*인프런 강의를 듣고 공부한 글입니다. 1. 카메라(Camera)게임이란 콘텐츠는 사용자가 스테이지를 만드는 것이 아니라, 게임을 플레이하는 사람을 대변하는 아바타가 게임 공간(월드 공간)을 탐험하는 형태로 구성되는 것이 일반적입니다. 아바타를 중심으로 시야 영역 내의 모습들이 모니터 화면에 표시하는 형태로 구현되며, 이는 월드 공간의 일부분을 화면에 표현하는 방식으로 구현됩니다. 이러한 내용을 구현하기 위해 아바타가 보는 시야를 우리가 볼 수 있게 어떤 가상의 카메라가 필요하고, 카메라에 보이는 모든 물체들이 카메라 시야를 기준으로 재해석되어 렌더링 되어야 합니다. 즉, 카메라에 보이는 물체들은 카메라를 기준으로 월드 공간에 재배치되어야 하고, 이러한 공간을 뷰 공간(View Space)라고 합니..
2023.11.29 -
[게임 수학] #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