09장 게임 엔진: 콘텐츠를 만드는 기초
9.1 게임 엔진의 구성 요소
- 게임 엔진 인터페이스는 두 작업 공간으로 나뉜다.
- 게임 공간을 설계하는 작업 공간인 신(scene) 혹은 레벨(level)
- 게임 데이터를 관리하는 작업 공간인 리소스(resource) 혹은 애셋(asset)
■ 9.1.1 신의 구조
- 신에서 콘텐츠를 구성하는 기본 단위는 게임 오브젝트(game object) 혹은 액터(actor)이다.
- 게임 오브젝트의 배치 정보는 위치, 회전, 크기로 구성된 트랜스폼(transform)으로 관리한다.
- 트랜스폼 정보로부터 모델링 행렬을 설계해 렌더링할 물체의 정점을 변환한다.
■ 9.1.2 2차원 모델링 행렬
- 모델링 행렬(modeling matrix)은 크기(S), 회전(R), 이동(T)에 대한 세 가지 아핀 변환 행렬의 곱으로 나타낸다.
- 행렬 곱은 교환 법칙이 성립하지 않기 때문에 변환 순서가 중요하다.
- 트랜스폼 변환은 크기 → 회전 → 위치 순서로 이루어지기 때문에 행렬 곱으로는 T·R·S이다.
■ 9.1.3 로컬 공간과 로컬 축
- 독립된 물체의 정보를 담기 위해 부여한 공간을 로컬 공간(local space)이라고 한다.
- 여러 물체를 모아 게임 콘텐츠를 만드는 데 사용되는 새로운 공간을 월드 공간(world space)라고 한다.
- 물체를 기준으로 설정된 방향 정보를 로컬 축(local axis)이라고 한다.
- 라이트 벡터(right vector), 업 벡터(up vector), 포워드 벡터(forward vector)
- 2차원 평면에서 트랜스폼에 새로운 회전 값이 설정되면 로컬 축(표준 기저 벡터)이 변경된다.
- 최종 모델링 행렬은 변경된 로컬 축(표준 기저 벡터)을 사용해 계산한다.
■ 9.1.4 리소스의 구조
- 게임 엔진은 여러 게임 오브젝트가 자원을 공유하도록 리소스 저장소(resource repository)를 제공한다.
- 메모리를 절약하기 위해 게임 오브젝트는 리소스 데이터를 가리키는 리소스 키(key)만 갖는다.
9.2 평면 카메라
■ 9.2.1 2차원 평면의 카메라
- 카메라가 출력할 화면의 크기 정보를 뷰포트(viewport)라고 한다.
- 물체의 트랜스폼을 카메라를 중심으로 변환한 공간을 뷰 공간(view space)이라고 한다.
- 모델링 행렬(modeling matrix)은 로컬 공간의 좌표를 월드 공간의 좌표로 변환한다.
- 한편, 뷰 행렬(view matrix)은 월드 공간의 좌표를 뷰 공간의 좌표로 변환한다.
- 2차원 평면에서의 뷰 행렬(V)은 카메라 트랜스폼에서 이동 행렬의 역행렬을 계산하면 된다.
- 로컬 공간의 좌표 vlocal에서 뷰 공간의 좌표 vview로 변환하는 행렬
- vview = V · M · vlocal
9.3 게임 엔진의 워크플로우
■ 9.3.1 게임 엔진의 워크플로우
- 4단계 게임 엔진 워크플로우
- 리소스 로드: 메시, 텍스처 같은 리소스를 불러들인다.
- 신 구축: 신에 속한 게임 오브젝트를 생성하고 리소스 정보를 연결한다.
- 게임 로직: 프레임마다 게임 오브젝트에 포함된 트랜스폼 정보를 갱신한다.
- 렌더링 로직: 게임 오브젝트에 연결된 리소스 정보를 활용해 화면을 그린다.
■ 9.3.2 렌더링 파이프라인
- 렌더링 파이프라인(rendering pipeline)
- 정점 변환: 게임 오브젝트에 연결된 메시의 정점 정보를 월드 공간을 중심으로 지정한다.
- 정점 처리: 화면에 그려질 정점의 위치 값을 월드 공간을 기준으로 변환한다.
- 픽셀화: 무게중심 좌표를 활용해 삼각형 속의 픽셀을 추려내고 색상을 결정한다.
- 픽셀 처리: 텍스처로부터 UV에 대응되는 색상을 가져와 픽셀의 최종 색상을 설정한다.
'Computer Science > 게임 수학' 카테고리의 다른 글
게임 수학 | 3부 3차원 콘텐츠 제작 | 11장 외적 (0) | 2023.03.08 |
---|---|
게임 수학 | 3부 3차원 콘텐츠 제작 | 10장 3차원 공간 (0) | 2023.02.27 |
게임 수학 | 2부 콘텐츠 제작 기초 | 08장 삼각형 (0) | 2023.02.18 |
게임 수학 | 2부 콘텐츠 제작 기초 | 07장 내적 (0) | 2023.02.17 |
게임 수학 | 2부 콘텐츠 제작 기초 | 06장 아핀 공간 (0) | 2023.02.17 |
댓글