[CG] 그래픽스 총정리 : Recap and 추가 공부

Jaeyoung Ko·2025년 4월 1일

<1> CG 개요

현대 3D 컴퓨터 그래픽스는 다음 과정으로 만들어진다.

  1. Modeling
  2. Rigging
  3. Animation
  4. Rendering
  5. Post-processing



(1) Modeling

Model 이란 실체 객체인 물체 오브젝트의 컴퓨터적 표현 이다.

보통의 3D 모델은 Polygon Meshes 를 통해 표현된다.

추가적으로 찾아볼 것: 넙스(Nurbs), 섭디비전(Subdivision), 스컬핑(Sculpting)


* Polygon Meshes

물체의 표면 (surface) 을 표현하는 데 사용된다.

이 폴리곤 메쉬는 vertex와 edge를 통해 구성되어 face와 mesh를 일컫는다.

  • GPU가 polygon 처리 작업에 최적화하기에 현대 3D 모델링에 많이 사용된다.

  • 보통, triangle mesh를 사용하며, Max와 Maya에서는 quad mesh를 사용하는 데, 간단히 quad <-> triangle 의 변환은 하나의 quad를 두 개의 triangle로 나누는 것이다.

  • 이 vertex count는 곧 해상도 (resolution) 즉, Level of Detail (LOD) 로 표현되며, LOD는 정밀도와 성능 두 개의 요소 간 tradeoff를 고려하여 결정되어야 한다.


* NURBS (Non-Uniform Rational B-Spline)

NURBS 란 곡선과 곡면을 수학적으로 표현하는 방식으로, control point 를 이용하여 곡선/곡면의 형태를 제어한다.

Polygon Mesh는 다면체 폴리곤을 이용하다보니 곡면의 표현에 Aliasing 현상이 나타나는 단점이 있는 반면, NURBS는 고품질의 곡면을 만들 수 있으나, 데이터가 무겁기 때문에 실시간 게임에는 보통 사용되지 않는다.


* Subdivision

픽사에서 개발된 모델링 기법으로, Polygon mesh와 NURBS 양자 모두를 차용하여 보완한 기술이다.

  • Polygon mesh의 각 face를 더 작은 면으로 분할한다. (보통 1/4로)

  • 새로 생성된 vertex에 대해 특정 알고리즘에 따라 이동시켜 곡면을 만들어 낸다.

ex1. Catmull-Clark Subdivision

quad polygon mesh에 대해 인접한 면의 중심점과 edge의 중간점 그리고 원래 vertex 위치 기반하여 weighted average를 사용하여 정점을 이동시킨다.

ex2. Loop Subdivision

triangle polygon mesh에 대해 인접 vertex 위치 기반한 새로운 vertex의 가중 평균을 사용하여 정점 이동시킨다.


* Sculpting

Sculpting 은 말 그대로 조각하듯이, 디지털 브러시를 통해 3D 모델의 형태를 자유롭게 다듬는 방식이다.

  • 조각하듯 다듬는 과정에서 알 수 있듯, 조형에 대한 이해도가 있다면 굉장히 직관적으로 작업을 수행할 수 있다.

  • 다만 세밀한 모델일수록 연산 요구량이 훨씬 높아지며, 수학적 정확성이 필요한 형태에는 약점이 존재한다.



(2) Rigging

오브젝트의 형태나 포즈, 특히나 인체 캐릭터의 경우 정교한 자세 표현을 위해서, 아티스트는 skeleton 혹은 rig 를 구성하여 이를 지정한다.

즉, Rigging 은 3D Model의 움직임을 제어할 수 있도록 skeleton을 mesh안에 심는 과정이다. Rigging은 특히 animation 작업을 위한 사전 준비 단계이다.



(3) Animation

Animation 은 Rigged 돈 Model을 움직여 시간의 흐름에 따른 변화를 만들어, 일련의 skeletal motion의 시퀀스를 만들어내는 작업이다.

주요 구현 기법 : 키프레임 애니메이션, 모션 캡처, 절차적 애니메이션



(4) Rendering

Rendering 은 3D 씬에서의 3D Model에 대해 2D Image를 생성해내는 작업이다. 특히나 Lighting, Texturing을 통해 realistic 이미지를 만들어낸다.


GPU Rendering Pipeline

3D Model 에서 2D Image로 랜더링하는 데에 다음 파이프라인을 거친다.

  1. Vertex Shader
  2. Rasterizer
  3. Fragment Shader
  4. Output Merger

Vertex Shader

Vertex Shader에서 vertex에 대한 transform 과정은 다음과 같다.

  1. Object space에서 World Transform 을 통해 World Space로 변환.

  2. World space에서 View Transform 을 통해 Camera Space로 변환.

  3. Camera space에서 Projection Transform 을 통해 Clip Space로 변환.

세부적인 transform에서의 사용되는 matrices에 대한 이야기는 학부 Computer Graphics 내용이지만 해당 포스팅에서는 포함하지 않겠다.



(5) Post-processing

Post-processing 은 말 그대로 optional한 작업으로 랜더링된 이미지에 대한 추가적인 이펙트를 적용하는 과정이다.

보통 색상 보정, 특수 효과, 합성 등이 이 과정에 포함되며 대표적인 예시는 Motion Blur라고 볼 수 있다.



여기서 주목할만한 점은,

앞선 3개의 과정인 Modeling, Rigging, Animation 은 디자이너의 수작업을 통해 기능하지만,

뒤의 2개 과정인 RenderingPost-processing 은 CG 패키지를 통해 자동적으로 이루어진다.

profile
안녕하세요, 고재영입니다. 언제나 즐겁게 살려고 노력합니다.

0개의 댓글