CS/Computer Graphics

[Graphics Study] 컴퓨터 그래픽스

Yeji Heo 2022. 10. 15. 11:25

고려대학교 컴퓨터학과 한정현 교수님의 강의를 듣고 나름대로 정리를 해보려고 한다. 

https://www.youtube.com/watch?v=Jvz0XPSRbx4&list=PLYEC1V9tJOl03WLDoUEKbiYW_Xt4W6LTl&index=1 

 

1. 3D Computer Graphics

3차원 물체를 입력 받아 2차원 영상(Frame)으로 출력.

프레임을 얼마나 빨리 만드느냐에 따라 실시간 그래픽, 비실시간 그래픽으로 나뉜다.

- 실시간 그래픽: Game, AR/VR, UIs. 초당 30frame이상

- 비실시간 그래픽: 영화 특수효과. photorealistic image를 목표

 

2. 개발 단계

실시간, 비실시간 그래픽 각각에 사용되는 알고리즘은 다를지라도, 개발단계는 공통된다.

Modeling -> Rigging -> Animation -> Rendering -> Post-processing

 

1. Modeling

컴퓨터가 이해하도록 물체를 표현하는 과정.

기법은 여러가지이나 주로 Polygon meshes를 사용. Triangle Meshes가 가장 보편적.

+ Mesh에 입힐 Texture도 필요. Texture Image를 만들어 입힌다.(Texturing)

Mesh

2. Rigging

모델링을 한 후 움직이게 하려면? Skeleton 사용. 말 그대로 뼈대를 넣는다.

- Skeleton을 Polygon Meshes에 넣음

- 꼭짓점과 Skeleton의 상관관계를 적당히 정리

하면 애니메이션을 만들 수 있다.

 

3. Animation

그래픽 아티스트가 Skeleton Motions의 시퀀스를 만들면 런타임에서 애니메이션을 재생

 

4. Rendering

3차원 Scene으로 2차원 Image를 만들어내는 과정.

-> Texturing + Lighting(빛과 물체의 상호작용)이 필요.

컴퓨터가 animate하려면 애니메이션재생+렌더링이 필요.

 

5. Post-processing

영상을 더 사실적으로(혹은 더 나은 퀄리티로) 보이게 하는 선택적인 과정.

대표적인 예시는 Motion blur. 

현실세계에서 빠르게 지나가는 물체는 흐릿하게 보인다. 컴퓨터에서도 모션블러를 사용해 빠른 물체를 흐리게 처리하면 더 사실적으로 보일 것.

 

3. Graphics API

1~3단계는 그래픽 아티스트가 오프라인에서 처리(3Ds Max나 Maya등을 활용),

3~5단계는 Application Program이 런타임에서처리

 

- Application Program

게임 분야에서는 보통 Animation, Rendering등 기능이 종합적으로 있는 Game Engine을 사용한다.

(Unity, Unreal 등..)

 

- Graphics API

Game Engine 하위에는 Graphics API가 있다. 

대표적인 인터페이스로는 Direct 3D, OpenGL이 있죵

임베디드 시스템을 위한 OpenGL인 OpenGL ES도 있다

OpenGL ES하위에는 GPU가 있는 것이다.