이득우의 게임 수학 1, 2장

Damin Ryu's avatar
Mar 03, 2024
이득우의 게임 수학 1, 2장

1장.

1.1 메타버스가 가져올 새로운 변화

이제 메타버스는 특정한 서비스를 뜻하지 않는다. 우리가 영위하는 실제의 삶이 디지털로 전환되고, 가상 세계에서 영위하는 것이 실재하게 되는 거대한 변화를 의미하는 것이다. p32

게임 엔진은 빠르고 효율적으로 게임을 개발할 수 있게 게임 제작에 필요한 여러 기능을 통합해 제공하는 소프트웨어를 의미한다. 게임 엔진은 게임 제작을 위해 개발됐지만, 지금은 앞서 언급한 가상 콘서트 및 버추얼 프로덕션, 가상 패션하우스 등 메타버스 전 분야에 깊이 연관되어 있다. p33

메타버스가 다양한 분야로 확산될수록 두 엔진(언리얼과 유니티)을 자유자재로 다루는 고급 개발자의 수요는 커질 것이다. ~ 따라서 메타버스 시대에 인정받는 고급 개발자가 되려면, 먼저 게임 엔진의 동작 원리를 이해하고 잘 다루는 것이 키포인트가 될 것이다. p33~34


1.2 게임 엔진의 구성

렌더링(Rendering) : 가상 공간을 이루는 수의 규칙을 분석하고 이를 빠르게 화면에 보여주는 작업. 그래픽카드(GPU)가 담당.

가상 세계에 관한 수학은 큰 틀에서 보면 선형대수학(Linear algebra)의 일종이라고 할 수 있다. 하지만 일반적인 선형대수학이 해를 구하는 데 치중되어 있다면, 가상 세계를 구성하는 선형대수학은 렌더링을 위한 공간의 구조를 분석하고 데이터를 다루는 데 고도화되어 있다. 렌더링을 중심으로 관련 이론과 기법을 다루는 학문을 컴퓨터 그래픽스(Computer graphics)라고 한다. p36

실시간 렌더링(Realtime rendering): 컴퓨터 그래픽스에서 게임 기술은 실시간 렌더링 기술로 분류된다. 특징은 가상 공간의 구조를 분석해, 화면에 보이지 않는 불필요한 물체를 걸러내고 보이는 물체의 단면만 빠르게 그려내는 데 특화되어 있다. p37

테크니컬 아티스트가 갖춰야 할 첫 번째 역랑

- 삼각법 및 벡터 수학에 대한 탄탄한 이해 (가상 공간을 다룰 때 쓰이는 수학을 벡터 수학(Vector math)라고 한다)

그 외의 역량

- 최소 한 가지 이상의 '전통적인' 카테고리에 대한 기반(레벨 디자인, 배경 아트, 애니메이션, 코딩 등)

- 도움이 되는 스크립팅 언어 작성 경험 : 맥스 스크립트(MAXScript), 파이썬(Python), 매트랩(MATLAB)

- 언리얼 엔진4의 경우 : 블루프린트, 머티리얼, 레벨 스트리밍

- 컴퓨터의 작동 원리(하드웨어적인 부분에서부터 소프트웨어적인 부분까지)에 대한 숙지

- 컴퓨터의 서로 다른 부분이 어떤 식으로 유기적으로 작용해 씬을 렌더하는지, 즉 하드 드라이브에서 데이터를 로드하여 플레이어에 이미지로 나타내기까지의 과정에 대한 이해

p37


1.3 게임 수학의 구성

게임 엔진을 지탱하는 데 사용되는 수학의 3가지 범주

- 공간을 다루는 수학 : 벡터 -> 행렬

- 물체를 다루는 수학 : 점 -> 삼각형

- 회전을 다루는 수학 : 삼각함수 -> 사원수

p38, 그림 1-12

공간을 다루는 수학

트랜스폼(Transform)을 설정 : 가상 공간에 다수의 물체를 배치하고 관리하는 작업. 

트랜스폼 설정이 중요한 작업인 이유 : 넓은 관점에서 '게임 콘텐츠 제작'이란 기획 의도에 따라 게임 공간에 속한 모든 물체의 트랜스폼을 실시간으로 설정하는 작업이기 때문. 내적과 외적 응용. p38-39

물체를 다루는 수학

: 물체의 외형을 설정하고 이를 모니터 화면에 표현하는 데 사용되는 수학. p39

현실에서는 선으로 다양한 형태와 질감을 표현 / 컴퓨터 그래픽에서는 오로지 삼각형을 사용해 물체를 표현.

픽셀화(Rasterization) : 추상적인 수들로 구성된 가상 공간이 모니터 화면을 구성하는 픽셀(Pixel)로 변환되게 하기 위해 일련의 규칙을 설정하고 이를 프로그래밍 하는 것. p40

회전을 다루는 수학

: 가상 공간에서 안정적인 회전 변환을 구현하는 데 사용되는 수학.

2D 게임 -> 삼각함수에 익숙. 3D 게임 -> 더 높은 수준의 수학.

회전 : '크기가 1인 수와의 곱'. 여기서 '수'란 실수를 넘어 복소수와 사원수를 포괄. 따라서 다차원 수의 구조를 파악해야 한다. 사원수를 사용하면 4차원 공간에서의 자유로운 회전이 가능하지만, 4차원은 안쓰고 3차원의 회전이 필요하므로 4차원 공간을 3차원으로 제한시키는 규칙을 이해하기 위해 오일러 공식의 유도가 필요하다.


1.4 이 책의 실습 환경 구축

비주얼 스튜디오와 CMake 소프트웨어가 필요.


2장

2.1 수와 집합

 

2.1.1 연산과 수의 구조

 

소박한 집합론(Naive set theory) : 서로 구분되는 원소(Element)로 구성된 묶음을 의미하는 집합을 다룸. 수집합을 정의하여 구분. (한계 : 집합의 성질이 공리적으로 명확하지 않음)

 - 사원수 : 실수와 제곱하면 -1이 되는 세 허수 단위 i, j, k를 조합해 a + bi + cj + dk (a, b, c, d는 실수) 형태로 표현하는 수의 집합

 

공리적 집합론(Axiomatic set theory) : 수가 가지는 연산에 대한 공리를 기반으로 수를 분류. (60~61p)

 

수집합의 고유한 특징 : 원소를 이용해 연산한다.

ex) 사칙연산과 같은 이항연산(Binary operation)

이항연산 : 같은 집합에 속한 두 수를 투입한 이항연산의 결과가 항상 투입한 집합에 속한다면, 그 이항연산은 해당 집합에 대해 닫혀 있다(Closure). 교환법칙(Commutative law), 결합법칙(Associative law), 분배법칙(Distributive law, 좌분배법칙과 우분배법칙을 모두 충족)라는 3가지 성질을 지닌다. 또한, 항등원과 역원을 지닌다. (62~64p)

 

2.1.2 수의 구조

 

+ 군, 환, 체의 개념 (대수학)

 

군(Group)의 형태 : (G, *, e)

1. G의 원소는 연산 *에 대해 결합법칙이 성립해야 한다.

2. 연산 *에 대한 항등원 e가 존재해야 한다.

2. G의 원소 a는 연산 *에 대한 역원이 존재해야 한다.

 

환(Ring)의 형태 : (R, +, *, 0) (군에 연산 * 하나가 더 추가됨)

1. (R, +, 0)이 군이며, 연산 +에 대해 교환, 결합, 분배법칙이 성립해야 한다.

2. 연산 *에 대해 결합법칙이 성립해야 한다.

3. 연산 *에 대해 분배법칙이 성립해야 한다.

이때 연산 *에 대해 교환법칙이 성립한다면 가환환(commutative ring), 곱셈에 대한 항등원이 존재하는 환은 단위원을 가진 환(ring with identity)이다. 단위원을 가진 가환환은 (R, +, *, 0, 1)로 곱셈에 대한 항등원까지 포함시켜 표현한다. 이를 정역(integral domain)이라 한다. 단위원을 가진 가환환에 대해 모든 R의 원소가 곱셈에 대한 역원을 가진 환을 나눗셈환(division ring)이라 한다.

 

체(field) : 단위원을 갖는 가환환이면서 나눗셈환인 환.

비가환체(skew field) : 단위원을 갖는 비가환환(교환법칙X, 항등원O) 이면서 나눗셈환(역원O)인 환.

 

참고 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=mondvopel&logNo=220020341466 

 

 

유리수(Q), 실수(R)과 같이 체의 구조를 가지는 수 집합은 특별한 예외 상황 없이 덧셈과 곱셈을 안전하고 자유롭게 사용할 수 있다고 볼 수 있다. 앞으로 우리는 특정한 수 집합을 지정해 사용하는 것이 아닌, 체의 구조를 기반으로 체계를 확장해 공간의 구조를 생성하고 그 안에 콘텐츠를 담는 가상 세계를 구축할 것이다.

 

2.1.3 수의 표현

 

수직선으로 덧셈과 곱셈을 표현할 수 있다.

 


2.2 함수 69p

 

2.2.1 함수의 개념과 종류

 

함수의 조건

1. 첫 번째 집합의 모든 원소에 대한 대응 관계가 존재해야 함.

2. 첫 번째 집합의 원소는 두 번째 집합의 한 원소에만 대응되어야 함.

 

함수의 종류

전사함수(Surjection)(위로의 함수 Onto) : 공역과 치역이 동일한 함수

단사함수(Injection)(일대일함수 One-to-One) : 정의역과 공역의 요소가 일대일로 대응되는 함수

전단사함수(Bijection, One-to-One and Onto) : 전사함수이자 단사함수

 

2.2.2 합성함수

 

2.2.3 항등함수와 역함수

 

항등함수(Identity Function) : 정의역과 공역이 동일한 값으로 대응되는 함수

역함수(Inverse Function) : 전단사함수만 역함수를 갖는다

 

2.2.4 곱집합을 활용한 좌표 평면으로의 확장

 

곱집합(Cartesian product, Product set) : 두 집합의 원소를 순서쌍으로 묶은 원소의 집합.

실수집합 R에 대해 곱집합 R*R을 정의역으로 설정하면, 다변수함수 f(x, y)=z를 정의할 수 있다.

 


2.3 정리

 

공리로부터 설계된 수의 구조는 수의 용도를 확장시켜 가상 세계를 구축하는 데 기반이 된다.

Share article

8strength