1강~3강 랜더링 파이프라인OT
✨1강 OT
동기 부여
[1]
회사는 다양한 직군을 잘 아는 개발자를 원한다
실무 면접에서 다음과 같은 내용의 질문이 많다
랜더링에 대해 배우는 것이 면접 공부에도 도움이 될 것
- 랜더링 파이프라인
- Diffuse, Ambient, Specular
- Double Buffering
- Tangent Space
- 그림자 원리
- 짐벌락 현상
- Quaternion
공부 방식
자세한 것 하나하나보다는 전체 숲을 보면서 공부하는 식의 공부를 추천
✨2강 그래픽스 OT
영화 촬영과 비교하기
- 영화 촬영 무대
- 조명 = 게임의 조명
- 배우 = 게임의 오브젝트
- 카메라 = 게임의 카메라
- 카메라로 촬영한 결과물 = 게임의 장면
영화 감독이 할 일 ⇒ 위 조건에서 대사, 카메라맨 조정, 조명 조절
그래픽스
[1]
게임의 화면 구성 ⇒ 픽셀로 이루어져 있다
[2]
애니메이션과 게임의 비교
애니메이션 : 고정된 카메라로 딱 한번만 *한 장면만 표현(계산)하면 끝
↔게임 : 실시간 랜더링, 고정되지 않은 카메라 (플레이어의 이동에 따라 카메라가 변화)
DirectX
DirectX 로 할 일 :
- 촬영 무대와 게임 오브젝트를 이용해 게임 화면을 (보이도록) 구성하는 것
- 3D 환경을 2D 화면으로 그려주는 일
✨3강 랜더링 파이프라인 OT
모든 물체들은 삼각형 단위로 그려져있다
- 확인해보기
유니티의 뷰포트에서 Shaded → Wireframe 모드로 게임 화면을 보면
큐브 하나가 삼각형들로 이루어져 있다
🔼 와이어프레임 모드에서 삼각형으로 표현되는 큐브
현대 게임에서 CPU의 역할
- 고전 게임에서 정점 갯수가 얼마 없는 캐릭터는 가능했지만 요즘 게임에서는 불가하다고 보면 됩니다
GPU와 랜더링 파이프 라인
CPU와 GPU의 구조 차이
CPU : ALU가 그닥 없음
- 서로 연관이 있는 복잡한 연산 위주
- =고급 인력
GPU : 대부분 영역을 ALU가 차지함 (단순 연산을 하는 ALU)
- 서로 연관성이 없는 단순 연산 위주
- = 외주 인력
- 마이크로소프트와 협력하여, DirectX 스펙에 맞춰 제품을 만든다
DirectX : 마이크로소프트에서 제공하는 GPU 외주 라이브러리
랜더링 파이프 라인 한눈에 보기
Input Assembler Stage : 정점 정보를 전달하기 (물체를 구성하는)
Vertex Shader Stage : 정점 관련 연산, 정점 변환 (정점 이동 등)
Tessellation Stage : 새로운 정점들을 생성, 멀리있는, 가까운 물체들을 서로 다르게 표현하기, 주로 지형 단위 위주
- Hull Shader Stage
- Tessellator Stage
- Domain Shader Stage
Geometry Shader Stage : 새로운 정점들을 생성, 작은 규모의 삼각형 단위 위주
( Stream Output Stage )
Rasterizer Stage : 정점 데이터를 기반으로 픽셀 단위로 표현한다. 삼각형 단위의 색상을 보간하는 작업 등을 한다
Pixel Shader Stage : 최종적으로 픽셀에 생상을 입히는 단계
Output-Merger Stage : 마무리로 윗단계들의 결과들을 바탕으로 색상을 표현하는 단계