시험 전 요약 정리
9강 : 도형과 그래픽스의 이해
1. 그래픽스와 기본 도형
2. 점과 선 그리기
A. 래스터화 (Rasterization)
- 한 점을 화면에 표현하는 픽셀로 바꾸는 과정
- 화면 좌표계를 통해서 화면에 픽셀을 표현
B. 브레젠험 알고리즘
- 정수만 이용하므로 속도가 빠르고, 계산량이 적다.
- 기울기를 구하여 사용한다. y = (y2-y1) / (x2-x1) * (x=x1) +y1
- 더 가까운 값을 찾아 그린다. D2-D1 < 0이면 yk+1
- 변위가 큰 축을 기준으로 1씩 증가시켜 다른 축의 가장 근접한 정수 값을 찾는다.
3. 삼각형 그리기와 칠하기
A. 스캔라인 (Scanline) 알고리즘
- 세 점이 이루고 있는 각 변의 기울기를 구한다.
- 삼각형을 두 개로 분할하여 그린다.
- 예외처리를 해 주어야 한다. (V2가 오른쪽일 때, y값이 동일할 때)
4. 사각형 그리기와 칠하기
5. 원 칠하기
10강 : 렌더링파이프라인 이해
1. 렌더링파이프라인의 이해
A. 3D 렌더링 : 3D 장면을 기반하여 카메라를 통해 장면을 어떻게 볼 것인지 계산하고
광원, 재질 등의 속성을 통하여 화면에 표현하는 과정.
B. 렌더링 파이프라인 : 그래픽 데이터가 모델링, 쉐이딩, 라이팅 등의 핵심 과정 등을 거쳐 2차원 픽셀로 표시되는 과정
C. 렌더링 구조
- Application > Geometry Processing > Rasterization > Pixel Processing (앱지레픽)
D. Vulkan
- Input Assembler > Vertex shader > Tessellation > Geometry shader > Rasterization > Fragment shader > Color blending (인버테지레프칼)
2. 렌더링파이프라인과 공간
A. 로컬 공간
B. 월드 공간
C. 뷰 공간
D. 뷰 포트
E. 스크린 공간
3. 2D 렌더링파이프라인
A. 렌더링 파이프라인
- Local Space > 월드 변환 > World Space > 뷰 변환 > View Space > 화면 변환 > Screen Space
4. 3D 렌더링파이프라인과 공간
A. 렌더링 파이프라인
- Local Space > Model Matrix > World Space > View Matrix > View Space > Projection Matrix > Clip Space > Viewport Transform > Screen Space (로월뷰클스)
B. 3D 좌표계는 오른손 좌표계 이용
C. 이동 변환, 크기 변환, 회전 변환
D. 오일러각
- Pitch : x
- Yaw : up
- Roll : foward
E. 총 결과물 (T·R·S)
5. 3D 카메라와 뷰 공간
A. 카메라가 물체를 바라보도록 하면 뷰 공간 x축이 왼쪽 방향이 된다.
B. 카메라는 –z축을 바라보게 되며, 객체들의 Z값은 –값을 가진다.
C. 뷰 변환은 카메라의 회전, 이동으로만 구성된다.
D. 뷰 행렬을 구하기 위해서는 카메라 행렬들의 역행렬을 계산해야 한다.
E. 𝑀𝑐𝒂𝒎 −𝟏 = (𝑻 ⋅ 𝑹) −𝟏 = 𝑹 −𝟏 ⋅ 𝑻 −𝟏
11강 : 렌더링의 활용
1. 렌더링의 활용
A. Clip 공간
B. 그래픽스에서의 FOV 차이
C. 투영평면 : 3D 객체들을 2D로 보이기 위해 투영하는 평면, 가메라 시점과 수직이며 카메라의 거리 및 방향에 따라 크기가 변화한다.
- 초점 거리 (focal length)
- 상하좌우의 범위 -1~1
- NDC : 투영변환 후에 클리핑이 수행된 후 적용되는 좌표계. 가운데가 원점인 좌표 시스템이다.
D. 투영 행렬과 투영행렬의 최적화
2. 원근투영의 이해
A. Near plane, Far plane
B. 원근 투영으로 생긴 NDC : -1~1의 정육면체, 중심에 카메라가 위치한다.
3. 직교투영의 이해
A. 투영 방법 중에 하나. 객체의 크기와 형태가 변하지 않는다.
B. 3D로 2D 게임 프로그래밍을 구현할 때 많이 사용한다.
C. right, left, top, bottom을 사용한다.
4. 뷰포트 변환
A. 최종적으로 디스플레이에 2D 결과화면을 가시화하는 단계.
B. depth buffer를 기반으로 어떤 객체를 보여야 할지 결정한다.
C. 좌상단이 원점인 화면 좌표계로 이동 변환을 진행한다.
- x축 : x + 1
- y축 : 1 - y
- z축 : z + 1
12강 : 게임엔진과 구성요소에 대한 이해
1. 게임엔진 구성요소
A. 게임엔진의 가장 중요한 구성 요소는 렌더링이다.
B. 씬은 게임을 최종적으로 가시화 할 때 게임 공간을 구성하고 있는 모든 객체들의 집합이다.
C. 씬의 구성 요소
- GameObject, Camera, Light, Material, Texture, UI, Sound
D. Scene Graph : 씬을 구성하는 객체들과의 관계를 계층적으로 표현한 데이터 구조
E. 카메라와 카메라의 구성 요소
- View Matrix : 카메라의 위치를 기준으로 함
- Projection Matrix : 투영을 위해 사용함.
E. GameObject
- 게임 오브젝트에서 결정되는 중요한 행렬 : Model Matrix
F. Mesh
G. 백페이스 컬링
- cos의 결과값이 음수이면 뒷면을 의미한다.
2. 렌더링 파이프라인 구축
13강 : 텍스처와 재질에 대한 이해
1. 재질과 텍스처
A.텍스처의 종류
- Diffuse Texture : 가장 기본이 되는 텍스처
- Specular Texture :빛의 반사에 대한 처리를 위한 텍스처
- Normal Texture : 표면의 입체감과 질감을 표현하기 위한 텍스처
B. UV 좌표계 : u, v 모두 0~1 사이의 값
C. 2D 삼각형 안의 무게중심좌표계
- 람1 + 람2 + 람3 = 1이다.
- 람1 + 람2 + 람3 = 1이다.
시험 문제
총 5문제, pseudocode 문제 있음.
1시 10분부터 1시간 20분 진행.
1. 3D 렌더링 파이프라인의 5가지 Space에 대해 설명하세요.
2. 원근투영과 직교투영에 대해 설명하세요.
3. 백페이스 컬링에 대해 설명하고, 수학적 계산 방법을 기술하세요.
4. 텍스처의 UV 좌표계에 대해 기술하세요.
5. 특정한 색이 칠해진 원을 그리는 방법을 의사코드로 표현하세요.
'대학생활 > 수업' 카테고리의 다른 글
게임그래픽엔진기초 2주차 - 유니티 엔진 개요, 렌더 파이프라인 (0) | 2023.08.06 |
---|---|
게임그래픽엔진기초 1주차 - Orientation, 소프트웨어 설치 (0) | 2023.08.06 |
게임레벨디자인기초 15주차 - 기말평가 답안풀이 (0) | 2023.06.22 |
게임음악작곡법 14주차 - 기말 과제 발표 (0) | 2023.06.22 |
게임데이터설계 15주차 - 실무 데이터 (0) | 2023.06.21 |