Study note/CS

Graphics 분야 면접 준비

공대 아로마 2024. 4. 12. 17:28

기술면접을 위해 기초 CS에 대한 복습중이다.
공부한 내용 중 요점이나 나중에 기억해야할 부분을 정리해보려고 한다.
내가 아는 부분은 생략되어 있을 수 있고, 혹여나 틀린 부분이 있을 수도 있으니 이 글을 보고 '다른 사람'이 공부하기에는 도움이 되지 않을 수 있으니 주의!

1. Graphics Pipeline

  • GPU는 병렬처리를 기본으로 하여 빠르다.
  • GPU가 처리하는 흐름을 GPU 파이프라인이라 한다.
  • 간단 설명: CPU로부터 입력된 정점 집합 -> 정적 집합을 3D 공간에 Vertex shader가 배치 -> 래스터화 -> Fragment shader가 각 픽셀 값으로 결정하여 화면에 출력
  • 과정 설명: 모델 그리기(local space) -> 임의의 공간에 모델 띄우기 (world space) -> 카메라 공간에 모델 띄우기 (view space) -> 클리핑 -> 트라이앵글 셋업, 레스터라이징 -> 뷰포트 변환 -> 픽셀단위 음영처리 -> 텍스쳐 적용 -> 렌더백엔드 -> 출력

참고: 블로그 - GPU 파이프라인

2. Model, View, Projection Matrix (MVP Matrix)

  • Model: 화면에 나타내고자 하는 객체
  • View: 카메라 객체. Model을 바라보는 대상
  • Projection: 카메라가 모델을 볼 수 있는 공간
    • Perspective Projection: 원근법 사용해서 사람 눈으로 보는 것처럼 표현
    • Orthographic Projection: 원근과 왜곡 없이 표현. 압축해서 보여주는 느낌
  • MVP Matrix 연산 방법
    MVPMatrix = Projection * View * Model

참고: 블로그 - MVP Matrix 만들기

3. 간단한 정점 Shader

  • GLSL라는 언어 사용. C언어 기반
  • Vertex Shader: 3차원 좌표들이 2차원 화면에 그려질 위치를 정의
  • Fragment Shader: 각각의 픽셀들의 색상을 정의
  • Rendering Pipeline: Input -> Vertex shader -> Rasterization -> Fragment shader -> Output

참고: 블로그 - MVP Matrix 만들기

'Study note > CS' 카테고리의 다른 글

면접 대비 C++ 기초  (0) 2024.04.12
외국계 시험 대비 Summary  (0) 2024.04.12
DS - Data Structure  (0) 2024.04.12
객체지향 프로그래밍 OOP  (0) 2024.04.12
디자인 패턴 2  (0) 2024.04.12