Computer Graphics -1-

전유정·2023년 1월 19일
0

출처: 단국대학교 박경신 교수님 kocw computer graphics 강의자료

Computer Graphics Main Theme

  1. 이미지: 2차원 이미지를 효과적으로 표현
  2. 모델링: 실물이나 가상의 3차원 물체를 컴퓨터가 이해할 수 있는 형태의
    3차원 입체로 형상화
  3. 렌더링: 3차원 모델(기하모델, 볼륨, 영상)에서 2차원 이미지로 화면에
    형상화
  4. 애니메이션: 인간 또는 의인화된 동식물, 로봇 등 사물의 시간에 따른
    움직임을 자연스럽게 표현

Modeling

Geometric Modeling: 그래픽 도구를 이용해 3차원 모델 생성
3D Scanning: 레이저 또는 특정한 패턴을 피사체에 투사하고 이를 촬영한 영상으로부터 3차원 형상 복원
Image-based Modeling: 다수의 사진으로부터 3차원 모델 생성

Rendering

Physically Based Rendering: 빛과 물체의 물리적 상호작용을 기반으로 CG물체를 실제와 같이 사실감 있게 표현 [Ray Tracing, Radiosity]
Volume Rendering: 대용량의 볼륨 데이터를 3차원으로 표현
Image-based Rendering: 한 시점에서 생성된 영상 (또는 촬영된 사진)을 다른 시점에서 보여지는 영상으로 재생성
Non-Photorealistic Rendering: 사실적 렌더링과 반대로 사람이 그린듯한 형태로 표현함 [Cartoon, 연필화, 수채화, 유화, 모자이크, 수묵화 기법]
Real-Time Rendering: 대화식(Interactive) 그래픽스 응용 소프트웨어 제작에 필요한 실시간 렌더링

Animation

Keyframe Animation: 대상체의 움직임 중 중요한 장면(Keyframe)을 숙련된 키프레임 애니메이터가 설정하고 키프레임 사이를 부드럽게 연결(보간). 셀 애니메이션에서는 수작업으로 현재 컴퓨터 애니메이션에서는 자동 계산
Motion Capture: 광학식 카메라, 자기식 센서, 기계식 센서 등을 이용하여 관절의 움직임을 직접 캡쳐. 가장 사실적인 동작 생성이 가능하여 영화에 널리 적용되고 있으나, 캡쳐 동작 편집이 어려움
Physically Based Animation: 물리적 법칙에 근거한 시뮬레이션을 통해 사실적인 상호 작용 및 애니메이션 생성
AI-based Behavior Animation: 캐릭터에 지능과 행동 양식을 부여하여 실제 인간과 같은 자연스러운 행동을 자동 생성

Liquid Crystal Display (LCD)를 주로 사용함

Vector Graphics System: 픽셀 개념이 없어 무한 해상도임, 프레임버퍼 없음 , Aliasing 없음, 예전 방식
Raster-based Graphics System: 프레임버퍼 사용

그래픽스 시스템 안의 프레임버퍼에서 픽셀의 배열인 래스터로 생성

Rasterization

Interlacing

프레임버퍼로 생성한 픽셀 이미지 -> 래스터 이미지
연속적인 영상을 유한 개의 화소를 사용하는 영역으로 표현하므로 오차가 발생함 - aliasing

프레임버퍼 (Frame buffer)

화면에 출력되는 래스터 이미지에 대한 픽스맵 데이터는 프레임 버퍼라고 불리는 메모리 한 부분에 저장되어야 함
해상도은 프레임버퍼의 픽셀 수 – 640x480, 1024x768 ..
프레임버퍼의 깊이는 시스템이 얼마나 많은 색을 한 픽셀에서 표현할 수 있는지를 결정함
Eg., 8 bits: 256 colors
넓은 의미로 프레임 버퍼(Frame Buffer)는 화면에 도시할 래스터 이미지뿐만 아니라 그러한 이미지를 생성하는데 필요한 여러 부류의 정보를 저장해주는 포괄적 의미의 그래픽스 전용 메모리(Video Memory)를 뜻함.

Double Buffering

프레임버퍼를 두 개 씀
전면 버퍼는 모니터에 주사함, 후면 버퍼는 다음에 주사해야 할 이미지를 준비함. 시간이 되면 두 버퍼를 switch함!

Synthetic-Camera




Vertex Processing: 각 정점의 좌표 변환을 수행하고 색을 계산 처리함
Clipping and Projection
Primitive Assembly: 클리핑은 기본요소 단위로 이루어짐(선분, 다각형, 곡선과 곡면 등)
Rasterization: 클리핑기로부터 나온 기본 요소는 아직 정점으로 표현되어 있는데 프레임 버퍼의 픽셀로 변환되어야 하고 래스터기의 출력은 각 기본 요소 fragments의 집합
Fragment Processing: 래스터기에서 생성한 단편(fragments: 픽셀이 되기 전)을 받아들여 프레임 버퍼 안에 있는 픽셀을 갱신함

Programmable Pipeline

최근 GPU (Graphics Processing Unit)에서 사용하고 있는 구조
렌더링 파이프라인의 일부분을 프로그래머가 vertex shader와 pixel/fragment shader를 통하여 원하는 방식으로 프로그래밍을 할 수 있음. 과거에는 불가능하였던 다양한 실시간 렌더링 효과를 유연하게 생성할 수 있음.

profile
게임 프로그래머가 되는 마지막 길로

0개의 댓글