전공과목 정리/컴퓨터과학의이해

[컴퓨터과학의이해🧮] 컴퓨터 그래픽스 (10장)

최연재 2022. 9. 11. 02:11

교재 : 컴퓨터 과학 총론 (13th Edition)

(책으로 공부하며 작성한 글입니다.)

 

1. 컴퓨터 그래픽스의 범위

- 2D 그래픽에서는 이미지 생성을 다루고, 영상처리(image processing)에서는 이미지 분석을 다룬다. 

- 2D 그래픽에서는 2차원 모양을 이미지로 변환시키는데, 3D 그래픽에서는 3차원 모양을 이미지로 변환시킨다. 

 

2. 3D 그래픽 개요

- 과정 : 이미지에 대한 모델링, 렌더링, 화면표시

 

(1) 모델링

  • 디지털 인코딩된 데이터와 알고리즘으로부터 3D 그래픽 장면이 구축된다. 

(2) 렌더링

  • 해당 장면 안의 물체들이 지정된 이치의 카메라에서 만들어진 사진에서 어떻게 나타날지 계산함으로써 그 장면에 대한 2차원 이미지를 생성한다,
  • 장면 안의 물체들에 대해 투상 평면(projection plane)으로 알려진 평면상에 투상을 계산하기 위해 해석 기하를 적용한다. 
  • 위 과정에서 원근 투상(persepective projection)이 적용된다. (모든 물체가 투상선을 따라 추상된다.)
  • 투상선 (projector) : 투상(projection)의 중심, 시점(view point)이라 불리는 공통 지점으로부터 확장되는 직선

(3) 화면표시

  • 이미지 윈도우 (image window) : 최종 이미지의 경계를 정의하는 투상 평면의 제한적 구역
  • 이미지 윈도우 안으로 투상되는 장면 부분이 파악되면 최종 이미지 상의 각 픽셀의 모습을 계산한다. 
  • 각 픽셀의 모습이 결정되면 그 결과들을 모아 프레임 버퍼(frame buffer)라고 불리는 저장 영역에 이미지를 비트맵 형식으로 저장한다. 

3. 모델링

1) 개별 물체에 대한 모델링

(1) 모양

  • 3D 그래픽에서 물체의 모양은 대개 평면형 패치(planar patch)라 불리는 작은 평면들의 집합으로 기술된다. 
  • 다각형들이 모여 기술하고자 하는 물체의 모양에 근접한 형태를 나타내는 다각형 매시(polygonal mesh)를 형성한다. 
  • 다각형 메시 안의 평면형 패치로 종종 삼각형을 사용하는데, 이는 삼각형이 3차원 공간에서 평면을 표시하기 위해 필요한 최소한의 점의 개수인 3개 정점만으로 표현될 수 있기 때문이다.
  • 다각형 메시는 그 안의 평면형 패치들의 집합으로 구성된다. 
  • 물체에 대한 다각형 메시 표현을 얻기 위한 방법 1 :  원하는 모양에 대한 정확한 기하학적 표현을 구하고, 그 표현을 사용해서 다각형 메시를 구축
  • 물체에 대한 다각형 메시 표현을 얻기 위한 방법 2 : 복잡한 해석 수단을 이용(베지어 곡선(Bezier curve) 사용)
  • 베지어 기법은  베지어 곡면(Bezier surface)과 같은 3차원 곡면의 포현으로 확장될 수 있으며, 베지어 곡면은 복잡한 표면을 위한 다각형 메시를 얻기 위한 과정의 초기 단계에서 효율적으로 이용될 수 있다.
  • 물체에 대한 다각형 메시 표현을 얻기 위한 방법 3 : 수작업 방법으로 메시 구축 (물체에 대한 물리적 모델을 만든 다음 3차원 공간에서 위치를 기록할 수 있는 펜 장치를 표면 부위에 갖다 댐으로써 표면상의 지점들의 위치를 기록하는 방법 사용 ; 위치 정보 수집 과정을 디지털화(digitizing)라 한다. )
  • 너무 복잡하여 기하학적 모델링이나 수작업 방식의 디지털화로는 현실감 있는 모델을 얻기 어려운 경우, 원하는 모양을 자동적으로 구축할 수 있는 절차형 모델(procedural model) 프로그램을 작성하여 다각형 메시를 얻는다.
  • 절차형 모델을 구축하기 위해 반복을 사용하거나, 수많은 입자들의 집합으로 물체의 기초 구조를 모방하는 입자 시스템(particle system)을 이용한다.

 

(2) 표면 특성

  • 대부분의 렌더링 시스템은 렌더링 프로세스에 사용자가 요청하는 다양한 표면 특성을 반영하는 기능들을 갖추고 있다. 
  • 다각형 메시 상의 각 정점과 함께 해당 위치의 원래 물체 색상을 인코딩할 수 있다.
  • 재질 매핑(texture mapping) 프로세스에 의해 색상 패턴을 물체 표면과 연계시킬 수 있다.
  • 재질 매핑은 물체의 표면과 사전 정의된 이미지를 연계시킨다는 점에서 비교적 평평한 표면에 적용될 때 가장 좋은 효과를 낸다. 

 

(3) 리얼리즘을 위한 모색

  • 실감나는 이미지를 도출할 수 있는 물체 모델을 구축하는 방법에 대해서는 현재 연구가 진행 중이다. 
  • 현재 생명체 캐릭터에 연관된 재질에 대한 내용의 연구가 관심을 끌고 있다.
  • 위 연구의 많은 부분은 특정 물질을 대상으로 하고 있으며, 모델링과 렌더링 기법을 모두 다룬다. 

 

2) 전체 장면에 대한 모델링

- 하나의 장면 속의 물체들에 대한 충분한 기술과 디지털 인코딩이 완료되면, 이들에 대해 장면 내에서의 위치, 크기, 방향 등이 지정된다. 

- 이러한 정보들이 연결되어 장면 그래프(scene graph)라 불리는 데이터 구조를 형성한다. 

-  장면 그랲는 광원을 나타내는 특별한 물체나 카메라를 나타내는 특정 물체 등에 대한 링크를 포함하기도 한다. 

 

4. 렌더링 (rendering)

1) 광-재질 상호작용

(1) 반사

  • 광선은 직선올 이동해 입사각(incidence angle)이라 불리는 각도로 표면에 부딪힌다. 광선이 반사되는 각도는 입사각과 동일하다. 
  • 매끄러운 표면의 경우, 표면성의 동일 영역에 부딪히는 평행한 광선들은 거의 같은 방향으로 반사되어 평행선을 형성하며 물체로부터 멀어진다. (정반사광(specular light))
  • 정반사광은 표면상에 밝은 하이라이트로 나타난다. 
  • 표면들이 완벽히 매끄러운 경우는 드물기에, 많은 광선들은 표면의 전체적 방향과는 다른 방향에서 표면들에 부딪힐 수 있다. 그리고 광선들은 종종 표면 경계를 통과한 후 표면 입자들 사이에서 튀다가 결국 반사되어 떠나며, 그 결과 광선들은 각기 다른 방향으로 흩어진다. (난반사광(diffuse light))
  • 난반사광은 물체의 색상을 띠는 경향이 있다. 
  • 주변광(ambient light) : 특정 광원이나 방향과 관계없는 떠도는 빛 또는 흩어진 빛

(2) 굴절(refraction)

  • 광선이 표면을 통과하면서 방향이 바뀌는 현상
  • 굴절 정도의 해당 물질의 굴절률에 따라 정해지며, 굴절률은 물질의 밀도에 연관되어 있다.  (밀도가 높은 물질일수록 높은 굴절률을 가짐.)

 

2) 클리핑, 주사 변환, 은면 제거

- 렌더링 파이프라인 (rendering pipeline)

  • 불투명 물체들만을 다루며, 굴절문제는 고려하지 않는다. 
  • 물체 사이의 상호작용도 무시되며 거율 효과나 그림자에 대해서도 고려하지 않는다. 
  • 가시 부피 (view volume) : 카메라가 볼 수 있는 물체들을 포함하는 3차원 장면 안의 영역
  • 렌더링 파이프라인에서는 먼저 가시부피를 구한다. 
  • 가시부피가 정해지면, 가시부피와 교차하지 않는 물체나 물체 부분을 고려 대상에 제외시킨다. 
  • 가시부피와 교차하지 않은 물체들을 찾아 버린 후 남아있는 물체들에 대해서 클리핑 프로세스를 이용해 정리한다. 
  • 클리핑(clipping) : 각각의 평면형 패치를 가시부피의 경계선들과 비교하여 경계선 바깥에 위치하는 부분을 잘라냄.
  • 이후 남아있는 평면형 패치 상에서 최종 이미지상의 픽셀 위치들에 대응될 지점들을 식별한다. 
  • 주사 변환(scan conversion) 또는 래스터 변환(rasterization) : 픽셀 위치들과 장면상의 지점을 대응시키는 프로세스
  • 주사 변환은 투상 중심에서 뻗어 나온 투상선을 이미지 윈도우 상의 각 픽셀을 지나도록 확장시키고, 이러한 투상선이평면형 패치들과 교차하는 지점들을 구하는 방식으로 이루어진다.
  • 음면 제거 (hidden-surface elimination) : 시야에서 가려지는 장면상의 지점을 찾아 버리는 일
  • 음면 제거의 특별한 형태로 후면 제거 (back face elimination)라는 것이 있는데, 물체의 "뒷면"에 해다아는 다각형 메시 상의 패치들을 고려 대상에서 제외시키는 것이다. 
  • 투상선이 둘 이상의 평면형 패치와 교차할 경우, 렌더링되어야 할 지점은 이미지 윈도우에 가장 가까운 평면형 패치 상의 지점이어야 한다. 
  • 화가 알고리즘 (painter's algorithm) : 카메라로부터의 거리에 따라 장면상의 물체들을 배열한 다음 먼 거리에 위치한 물체들부터 주사변형함으로써 가까운 거리의 물체에 대한 주사 변환이 이전의 결과에 우선하도록 만드는 방법이다.
  • z-버퍼(깊이 버퍼)라는 별도의 저장 영역을 이용해 전체 물체보다 개별 픽셀들에 집중하는 방식이 있다. 

3) 음영법

- 주사 변환에서 최종 이미지에 나타나야 할 평면형 패치 상의 지점을 발견하면, 렌더링 작업은해당 지점에서의 패치의 모습을 결정하는 일로 귀결된다. 

- 음영법(shading)은 문제의 지점으로부터 카메라를 향해 투상되는 빛의 성질을 계산하는 일을 포함하며, 빛의 성질을다시 해당지점의 표면 방향에 따라 달라진다. 

- 음영법 문제에 대한 단순한 해법에 플랫 음영법(flat shading)이라는 것이 있는데, 여기에서는 평면형 패치의 방향을 패치상의 각 지점의 방향으로 사용한다. 

- 다각형 메시의 정점들에서의 원래 표면방향을 얻는 방법에 관계없이 데이터에 기초해서 평면형 패치에 대해 음영법을 적용하기 위한 방법으로 구로 음영법(Gouraud shading)과 퐁 음영법(Phong shading)이 존재한다. 

- 표면에재질감이 보태기 위한 방법으로 용기 매핑(bump mapping)이 있다.

 

4) 렌더링-파이프라인 하드웨어

- 비디오 게임 장비를 포함하여 그래픽 응용에 사용하도록 설계된 대부분의 컴퓨터 시스템들은 렌더링 장비들을 갖추고 있다. 

- 범용 컴퓨터 시스템의 경우에는 전용 제어기로서 컴퓨터의 버스에 연결되는 그래픽 카드(ghapics card) 또는 그래픽 어댑터(graphics adapter) 형태로 장치를 추가할 수 있다. 

- 렌더링 파이프라인 하드웨어는 그래픽 응용 소프트웨어의 복잡성을 줄여준다. 

- 많은 그래픽 카드에서 최신 GPU(Graphical Processor Unit)들은 렌더링 계산과 유사한 방식으로 표현될 수 있는 복잡한 시뮬레이션 계산에 사용할 수 있는 훌륭한 추상도구이다.

- 그래픽 하드웨어 종속성을 줄이기 위해, 그래픽 하드웨어와 응용 소프트웨어 사이의 중개 역할을 하는 표준 소프트웨어 인터페이스들이 개발되어 왔다.

- 파이프라인은 지역 조명 모델(local lighiting model)만을 구현한다.  (각 물체를 다른 물체들과 연관성 없이 렌더링한다.)

- 위의 이유로 그림자나 반사와 같은 물체들 사이의 빛에 의한 상호작용이 고려되지 않는다. 

- 지역 조명 모델은 물체들과의 상호작용을 고려하는 전역 조명 모델(global lighting model)과 대비된다. 

 

5. 전역 조명의 처리

: 연구자들은 렌더링 파이프라인에 대한 2가지 대안을 조사 중이다. 모두 전역 조명 모델을 구현하고 있기 때문에 지역 조명 모델의 단점을 극복할 수 있고, 세밀하여 시간이 많이 소요된다. 

 

1) 광선 추적법 (ray tracing)

- 광선의 방향을 거슬러가서 광눤을 찾는 프로세스

- 먼저 렌더링 대상 픽셀을 선택한 후 그 픽셀을 지나는 직선을 찾고, 그 직선을 따라 이미지 윈도우에 부딪히는 광선을 추적한다. 

- 이러한 추적은 장면 안으로 향하는 직선을 따라 그 직선이 물체에 닿을 때까지 쫓아가는 일을 포함한다. 

- 그 물체가 광원일 경우, 광선 추적 프로세스는 종료되며 그 픽셀은 광원상의 한 점으로 렌더링된다. 

- 광원이 아닐 경우, 반사되어 이 프로세스가 역추적하고 있는 광선을 만들어 낸 입사광선의 방향을 계산하기 위해 물체의 표면 성질을 구한다. 그 후 광원을 찾기 위해 그 입사광선을 쫓아간다. 

- 광선추적법은 정반사만을 추적할 수 있다. 

- 위의 단점을 해결하기 위해 분산 광선 추적법(distributed ray tracing)이라 불리는 광선 추적법의 응용이 있다. 

- 분산 광선 추적법에서는 반사 지점에서 조금씩 방향을 달리하는 여러 개의 광선을 역추적한다. 

- 투명 물체에 대한 렌더링에 적용할 수 있는 기본 광선 추적법의 또 다른 변형이 있는데, 이 방법에서는 반사와 굴절을 고려한다.

- 대개 광선 추적법은 재귀법을 사용해 구현된다. 

- 광선 추적법에서는 은면 제거 문제와 그림자 탐지 문제를 해결할 수 있다. 

- 시간이 오래 걸리기 때문에, 일반 소비자용 실시간 시스템에서는 사용하지 않는다. 

 

2) 래디오시티법 (radiosity)

- 래디오시티법에서는 평면형 패치 쌍 사이에서 방사되는 빛 에너지 전체를 고려하는 영역 단위 방식을 취한다. 

- 방사되는 빛에너지는 대개 난반사광이다. 

- 한 물체로부터 방사되는 빛이 다른 물체의 모습에 영향을 미치는 정도는 형상 인자(form factor)라는 매개변수에 의해 결정된다.

- 계산 대상 패치의 수가 매우 많기 때문에 래디오시티법은 많은 계산량을 요구한다. 그렇기 때문에 일반소비자용으로는 사용하지 않는다. 

- 정반사광을 정밀하게 반영하지 못한다. 

- 색상 블리딩(color bleeding)같은 빛의 여러 가지 미묘한 특성을 반영한다. 

- 색상 블리딩 : 한 물체의 색상이 그 주변의 다른 물체들의 색조에 영향을 미치는 것

 

6. 애니메이션

1) 애니메이션 기초

(1) 프레임 (frame)

- 일정한 시간 간격으로 변화하는 장면의 모습을 담고 있다. 

- 프레임을 차례로 보여주며 시간의 경과에 따라 변화하는 장면의 모습을 담고 있다.

- 프레임은 일반 촬영을 통해 만들어질 수 있고, 컴퓨터 그래픽에 의해 인공적으로 만들어질 수도 있으며,또한 두 가지 방식이 결합될 수 있다. 

- 모핑(moping) : 하나의 물체가 다른 물체로 모습을 변형해 가는 프로세스

- 모핑 직전의 프레임에서 제어점 (control point)이라 불린느 선이나 점들과 같은 요소들이 모핑 직후 프레임상의 유사 요소들과 연계되며, 모핑은 제어점들을 중심으로 하나의 영상을 다른 영상으로 조금씩 변형시키는 수학적 기법을 적용하는 방식으로 진행된다. 

 

(2) 스토리보드 (storyboard)

- 상영 내용의 핵심이 될 장면들의 스케치 형태로 전체 스토리를 말해주는 일련의 2차원 영상들로 이루어져 있다.

 

(3) 3D 애니메이션

- 스토리보드는 3차원 가상세계의 구축을 위한 안내 역할로 이용된다. 

 

2) 동역학과 운동역학

- 동역학 (dynamics)  : 물체에 작용하는 힘의 효괄르 산출하기 위해 물리 법칙을 적용함으로써 물체의 이동을 설명한다.

  • 장면 안의 물체에는 위치뿐만 아니라 이동 방향, 속도, 질량 등의 항목들이 주어질 수 있다. 
  • 위 항목들은 중력이나 다른 물체와의 충돌 등이 그 물체에 갖는 효과를 계산하기 위해 사용될 수 있다. 

- 운동역학 (kinematics) : 한 물체를 구성하는 부분들이 서로에 대해 어떻게 움직이는지 기술함으로써 물체의 운동을 설명한다. 

  • 관절구조를 갖는 인물의 애니메이션에서 응용이 두드러진다.

 

3) 애니메이션 과정

- 애니메이션 분야 연구의 궁극적 목표는 전체 애니메이션 과정을 자동화시키는 것이다. 

- 컴퓨터 그래픽스 연구가 발전하고 기술이 진보함에 따라 분명히 애니메이션 과정의 더 많은 부분이 자동화될 것이다.