이미지의 디지털화II
1) Rendering 원리이해 (3차원 이미지의 Rendering 기술)
커머셜필름(CF)이나 영화에서 볼수 있는 CG는 상당히 리얼한 질감표현이 되어있다. 이것은 물체의 표면특성과 재질감, 조명의 상태(Lighting)가 수학적 모델로서 이상적인 조건으로 계산된 것이다. 이것에 의해 리얼한 질감표현이 되는 것이다. 이와 같이 컴퓨터를 이용한 계산에 의해 화상을 작성하는 것을 렌더링이라고 한다.
렌더링 기법의 종류
CG기법은 모델링기법과 렌더링기법으로 크게 나눌수가 있다. 모델링기법은 "물체나 공간을 데이타화 하는 방법"이라고 부르듯이 렌더링기법은 "데이타를 기본으로하여 화상(畵像)을 만드는 방법"이라고 부를수 있다. 또 모델링에 의해 만들어지는 데이타는 컴퓨터의 속에서 가상환경(假想環境) 가 그 자체이며, 렌더링은 가상환경을 화상이라고 하는 형태로 구상화(具象化)하는 방법이라고도 할 수 있다.
CG에 있어 화상의 완성을 결정하는 렌더링기법은 어떤 화상을 만들까에 따라 분류를 나눌 수 있다. 선(線)을 사용해서 그릴까, 면(面)을 사용해서 그릴까, 또는 공간 그자체를 구름이나 눈과 같이 밀도나 농도의 분포를 가진 물체로서 그릴까 등이 있다.
단순히 선으로만 그릴 경우에도 원근감과 불투명감에 대한3차원적 표현을 어떻게 할것인가, 물체의 면이나 내부를 그릴 경우 광(光)의 반사나 투명을 어떻게 취급할 것인가 등의 문제가 있으며 이것을 해결하는 이론이나 기술이 연구되어 지고 있다.
3차원 모델의 표시
일반적인 렌더링 과정의 예를 설명한 것이 우측 그림이다. 렌더링의 과정은 먼저 모델링 된 물체와 시점, 스크린, 광원 등의 데이타로 구성된 가상공간을 만드는것 부터 시작 한다. 또한 이 가상공간에 있어서 데이타화된 시점, 시야, 광원 등도 모두 모델이다.
- 투영(投影:Projection)
시점에서 스크린을 톻하여 물체를 바라볼때 가상공간에서의 물체, 스크린, 시점의 관계는 (視->畵面->物體)와 같다. 스크린은 가상적인 개념과 함께 실제 컴퓨터 화면과 대응된다. 이러한 가상공간은 스크린의 중앙을 원점으로 하여 시점에서 보이는 횡방향을 (X축), 종방향을 (Y축), 속(안쪽)을 (Z축)으로하는 직교좌표계를 가진다. 스크린은 2차원 평면인 관계로 3차원 물체를 스크린(화면)에 그리기위해서는 물체를 구성하는 모든 부위의 점 P(x,y,z)를 2차원의 점 P'(x',y')로 변환 할 필요가 있다. 이러한 처리를 투영(Projection)이라고 한다.
CG제작에 있어서 사용되는 투영의 대표적인 방법으로 평행투영법(Parallel Projection)과 투시투영법(Perspective Projection)이 있다.
평행투영법(平行投影法)은 3차원의 좌표중에 'z'축의 값을 '0'으로 하면 되기에 처리가 단순하다. 이것은 삼면도 등에 사용되는 표현방법과 같다. 반면 멀리있는 물체나 가까이 있는 물체 모두 같은 크기로 나타내기에 원감을 표현할 수가 없다.
투시투영법(透視投影法)은 시점(視点)을 정점(頂点)으로 하여 스크린을 통하여 넓어지는 시야의 중심에 있는 물체의 상대적인 크기를 고려한 것이다. 이방법은 원근감의 표현이 가능하다.
- 표시방법
투영에 의해 물체의 스크린상 위치가 결정되면 다음으로 그 위치에 구체적인 도형이나 화상을 그리는 처리가 시작된다. 물체를 표현하는 방법으로는 물체 형태를 나타내는 선분을 그리는 방법, 물체 형태의 표면을 그리는 방법, 물체 내부까지 대상으로 하여 그리는 방법 등이 있다. 각각 와이어프레임렌더링, 스페이스렌더링, 볼륨렌더링 등으로 불린다. 이것은 물체를 데이타화 할때의 와이어프레임모델, 스페이스모델, 솔리드모델 등과의 연결성이 있는것이 아니라 스페이스모델을 데이타를 이용하여 와이어프레임렌더링을 행할 수도 있으며, 물체면의 광(光)의 굴절을 다루는 렌더링화상을 만들수도 있다.
은면처리(隱面處理:Hidden Surface)
3차원 물체를 바라볼때 그림자에 가린 뒷면 부분은 보이지 않는다. 이와 같이 보이지 않는 부분과 보이는 부분의 정보는 3차원 물체를 표시할때 중요한 요소이다. 보이지 않는 부분의 면은 제외하고 가시면(可視面)만 그리는 처리는 은면처리라고 한다. 물체의 형태가 다면체일 경우 면이 가시(可視)일까 불가시(不可視)일까를 판단할 필요가 있다. 이러한 판단에 대한 기법은 여러가지가 있다.
- Z-소트법(depth-sort algorithm)
Z소트법은 래스트스캔형의 디스플레이의 표시하는 방법을 살려 시점에서 먼거리에 있는 순서로 면을 중복하여 그려나가면 최종적으로 가장 가까이있는 면이 그려지는 방법으로 면의 Z축 값인 면의 중심을 이용하는 경우가 많기에 G소트법이라고도 부른다. 이 방법은 은면처리 중에서도 가장 단순한 부류의 알고리즘이다. 그러나 먼 면의 판단이 정확하게 되면 간단하지만 면과 면이 교차된 경우 면을 세분하는 전처리가 필요하다. 또한 면의 크기나 위치관계에 따라 중심값만 가지고 정확한 전후 판단이 되지 않는 경우가 있다. 이 Z소트법은 기계CAD나 건축CAD에 있어서 간단표시 등에 이용되고 있다.
- Z-버퍼법(Z-buffer algorithm)
Z버퍼법은 화상 사이즈의 화소 전부에 대하여 시점에서 바라본 Z축 값을 메모리에 보존하는 방법이다. 차례차례 면을 겹쳐 그릴경우 보관된 Z값을 참조하면 앞에서 그린 면보다 앞인지 뒤인지 판단할 수 있다. Z버퍼법은 화상에 대해 Z버퍼메모리를 가지고 있으면 물체를 뒤 에라도 추가 할 수 있는 특징이 있다. 따라서 렌더링하는 물체의 갯수에 제한이 없다. 또한 처리속도가 고속이므로 은면처리의 주류가 되고 있다.
- 스캔라인법(scan-line algorithm)
스캔라인법은 시선과 디스플레이상의 주사선에 의한 수평면(스캔라인수평면)과 다각형으로 나타낸 물체면과의 교차에 대해 입체적으로 취급한 것이다. 물체를 구성하는 다각형의 최대값과 최소값을 이용하면 다각형과 스캔라인수평면과의 교차가 시작되는 위치와 교차가 끝나는 위치를 판단할 수 있다. 또한 이 구간내에 있어서는 좌우 능선의 증감이 일정하여 다각형의 교차위치관계도 일관성이 있다. 스캔라인법은 증감계산의 간결과 다각형간의 교차관계의 일관성에 의해 효율 좋은 렌더링을 실현한다.
다면체의 음영처리(陰影處理:shading)
면의 방향, 색, 반사함수, 광원, 시점 등이 결정되면 면에 대한 광의 반사의 정도를 계산 할 수 있다. 이러한 처리를 음영처리(shading)라고 한다. 음영처리에 의해 그리고자하는 면의 방향이나 재질감등의 표현이 가능하지만 곡면을 다각형의 집합으로 나타낼 경우 각각의 다각형의 형태가 눈에 띄는 현상이 생긴다. 물론 이러한 현상을 감소시키는 스무즈드쉐이딩(smooth shading)기법을 이용하면 부드러운 면 처리가 가능하다.
- 콘스턴트쉐이딩(constant shading)
콘스턴트쉐이딩은 면의 방향을 나타내는 법선벡터에 대해서만 음영계산을 행한다. 음영색만으로 면 전체를 칠하는 방법으로 플랫쉐이딩(Flat Shading)이라고도 부른다. 이 방법은 음영계산의 갯수가 작기에 고속으로 화상 생성이 가능하며 리얼타임의 화상표시나 CAD의 간단표시등에 이용되고 있다. 그러나 곡면을 다각형으로 근사시켜 표현할 경우 마하밴드(mach band effect:인간은 휘도(輝度)의 변화에 민감하여 실제의 변화보다 크게 끼는 효과)효과의 영향을 받는다. 이것에 의해 다각형 한계의 명암의 차가 쉡게 눈에 띄어 부드러운 표현이 곤란한 점이 있다.
- 스무즈드쉐이딩(smooth shading)
스무즈드쉐이딩은 평면으로 구성된 다면체를 보기좋고 부드럽게 표시하는 방법이다. 그로우(H.Gouraud)는 정점을 공유하는 모든 점의 법선벡터의 평균치를 정점의 법선벡터로 놓고 정점마다 음영을 계산하고, 면 내부에 대해서는 각정점의 음영색을 보간(補間)하는 방법을 고안했다. 이것을 그로우쉐이딩(gouraud shading)이라고 한다. 색보간쉐이딩(color interpolation)이라고도 부른다. 면내부를 정점으로 부터 그라데이션으로 그리는 조작은 2차원적인 계산만 필요로하기에 그래픽액셀레이트에 포함시키는 것이 비교적 용이하여 그로우쉐이딩은 하드웨어로 실현하는 시스템이 많다.
정점이외의 요소는 계산하지 않는 그로우쉐이딩은 하이라이트 등의 국소적인 색의 변화에는 대응하지 않는다. 퐁(Phong Bui-Tuong)은 법선벡터를 면의 내부에서 보간하고 음영계산을 하는 방법을 고안하였다. 이것을 퐁쉐이딩(phong shading)이라 한다. 면의 좌표가 실제의 곡면이 되지 않는것을 제외하면 보다 충실한 쉐이딩모델이다.
질감(質感)의 표현
리얼리티가 있는 화상을 만들기위해서는 모데링된 물체에 재질이나 모양등 극성을 부여할 필요가 있다. 재질을 표현하기 위해서는 물체의 반사율, 투명률, 굴절률 등의 데이타를 부여하고 물리법칙을 이용하여 계산을 행한다. 또는 물체표면의 섬세한 조형이나 무늬는 매핑처리에 의해 만들어 진다.
- 음영처리(shading)
조명에 비추어진 물체표면의 음영은 그 물체의 소재나 표면의 상태에 따라 다르게 보인다. CG에서 이러한 것의 성질에 따라 음영의 차이를 주변광(周邊光), 확산광(擴散光), 경면반사광(鏡面反射光)의 성분으로 나누어 계산하는 경우가 많다. 그렇지만 이경우 광의 파장이나 물체표면의 조직 등을 완전히 재현하는 계산은 어렵고 곤란하기에 어떻게하면 실제의 화상에 근접할 수 있는가에 초점을 두고 여러가지 모델(數式)이 고안되어 있다.
-주변광(ambient light)
주변광은 광원에서 직접광 이외의 간접적인 광의 성분이다. 라디오시티법과 같은 고급표현 방법도 있지만 이것은 광원에서 광의 밝기에 대응하여 5% 혹은 10% 등의 범위에서 음영을 바꾸어 광이 비추지 못하는 면이라도 순수 검정이 되지 않게 한다. 음영색은 물체의 색과 광원의 색에 영향을 받는다.
-확산광(diffuse reflection)
확산광은 물체표면에 확산반사한 광의 성분이다. 확산반사는 램버트(Lambert)의 법칙에 따르고 있으며, 시점의 방향에 관계없이 광원과 면의 각도에 따라 결정된다. 확산반사율은 석탑의 면과 같이 거친 요철이 있는 경우에는 높은 값이 금속과 같이 미끈한면에서는 작은 값이 부여 된다. 음영색은 물체의 색과 광원의 색에 영향을 받는다.
-경면반사광(specular reflection)
경면반사광은 하이라이트 또는 광택이라고 불리는 성분이다. 놓여진 면의 방향에 대해 시선과 광원이 선대칭일때 광이 물체에 반사되어 눈으로 들어온다. 실제로는 완전한 선대칭이 아니라도 표면의 상태에 따라 그 주변에 하이라이트가 발생한다. 퐁(B.T.Phong)은 광원의 반사벡터와 시선벡터와의 근접 각도에서 하이라이트의 범위의 정도와 반사강도의 분포를 경험에 의해 2개의 함수로 수식화 했다. 이것을 퐁의 반사모델(Phong's illumination model)이라고 부른다.
- 레이트레싱법(ray tracng algorithm)
레이트레싱법은 광선추적법 혹은 시선탐색법이라고 번역된것 같이 시점에서 표시면(스크린상의 화소)을 통과하는 시선을 따라 진행방향에 물체가 교차될까 되지 않을까를 구하는 은면처리 방법이다. 물체가 경면(鏡面)이면 반사방향으로 시선을 추적하고 광이 통과하는 투명체이면 굴절방향으로 시선을 추적한다.이것에 의해 물리법칙에 기초한 현실감 있는 화상을 만들수가 있다.
레이트레싱은 모든 물체의 교차의 유무(有無)를 모든 화소에 대하여, 또한 반사나 굴절이 있으면 이것에 관해서도 모두 재귀적(再歸的)으로 계산하기 때문에 현실감을 주는 대신에 방대한 계산시간이 소요된다. 시선에서 추적하는 방법은 정확히 역방향의 레이트레싱(backward ray tracing)이라고 부르며 은면처리의 역활은 하지만 반사나 굴절에 의한 간접적인 광원의 추적은 불가능하다. 이것과 반대되는 광원에서 추적해 나가는 방법을 순방향레이트레싱(forward ray tracing)이라고 부른다. 또한 양방향으로부터의 추적을 고려한 쌍방향레이트레싱이라는 방법이 있다.
은면처리를 위한 시선벡터와 물체의 교차판단을 레이캐스팅(ray casting)이라고 부른다.
- 투과(透過), 굴절(屈折)
물체에 투과의 극성을 준 경우, 그 물체의 뒤에 있는 물체도 투과되어 보이게 된다. 이 때문에 은면처리의 종류에 따라 표현이 곤란할 수도 있어 처리방법을 확장할 필요가 있다. 투과된 장소의 음영처리에 대해서는 반투명물체와 뒤의 물체와의 투명률을 나누는 경우(interpolated transparency)나, 색이 들어있는 반투명물체에는 파장에 의한 필터를 적용하는 경우(filtered transparency)가 있다. 굴절이 없는 투과 만의 표현에는 사실적인 화상 뿐만아니라 CAD에서의 배치확인 등에 유용하다. 굴절률을 고려한 경우에는 프레넬(fresnel term)의 법칙 따라 굴절방향의 물체가 비치어 진다. 이 처리를 할 경우에는 반사 및 굴절 계산이 용이한 레이트레싱법이 최적이다. 그러나 레이트레싱도 광이 굴절하여 여러가지색으로 분광하는 현상은 일반적인 레이트레싱으로는 표현 할수 없다.
- 照度計算(Radiosity)
Radiosity는 장면에서 빛의 반사와 표면 분산을 자세하게 분석하는 렌더링의 한 기법이다. Radiosity Rendering 기법을 사용한 결과 이미지의 특징은 부드러운 그림자의 효과이다. Radiosity는 보통 인테리어 빌딩의 이미지를 랜더링 할 때 사진과 거의 흡사하게 반사되는 표면들을 가진 이미지를 만들 때 자주 쓰인다.
2) 매핑(Mapping) 기법 (3차원 이미지의 Mapping 기술)
매핑(mapping)
물체의 재질이나 모양 등을 정밀하게 모델링 하는 것은 처리시간이나 비용면에서 상당히 곤란 할 경우가 있다. 예를 들어 식물의 가지나 잎, 열매를 모두 폴리곤으로 그리는것은 불가능에 가깝다. 여기서 수식이나 실제 입력한 데이타에 의해 잎사귀나 요철데이타를 렌더링시 물체의 면에 투영하는 좋은 방법이 사용된다. 이러한 방법을 매핑(mapping)이라고 한다.
- 텍스쳐매핑(texture mapping)
2차원의 사진이나 문자나 일러스트등을 물체의 표면에 붙이는 방법을 텍스쳐매핑이라고 부른다. 또한 텍스쳐매핑은 매핑소스에 둘러싸여 처리하는 총칭으로도 사용되기에 칼라매핑이라고도 불린다. 매핑소스가 되는 평면화상은 일반적으로 (u, v)의 기호로 좌표를 나타낸다. 붙이는 방향의 차에 따라 평행투영, 극좌표투영, 원통극좌표투영 드의 종류가 있다.
- 범퍼매핑(bump mapping)
범퍼는 혹이라는 뜻으로 요철을 보기좋게 표현하는 매핑방법이다. 물체의 요철부분은 법선이 여기저기로 헛터져있지만, 범퍼매핑은 (u, v)로 나타낸 평면의 매핑소스의 농도를 법선 방향의 요소로 하여 음영계산을 행한다. 따라서 광원이 정면에 있어 그림자가 나타나지 않는 부분이나 광이 비치지 않는 부분에서는 효과가 없다.
- 반사매핑(reflection mapping)
레이트레싱법을 사용하지 않고 경면(鏡面)의 비침질감를 표현하는 방법이다. 비치게 되는 화상은 물체에서 본 주변의 풍경을 조사하여 입력 혹은 생성해 나간다. 그리고 물체의 면에서 반사된 방향에 있는 풍경을 매핑하면 반사면으로 보인다. 변칙적인 방법이지만 레이트레싱의 처리시간을 생각하면 효과적인 방법이다. 주변의 풍경을 비추기에 환경매핑(environment mapping)이라고 한다.
- 솔리드텍스쳐(solid texture)
목재의 무늬결을 텍스쳐매핑으로 만들고자 할 경우 면과 면의 연결부분을 자연스럽게 연결시키기가 어렵다. 또한 이때문에 각면에 텍스쳐를 준비하는 것도 비효율적이다. 여기서 3차원적인 텍스쳐를 계산에 의해 발생시켜, 이것을 물체에 대해 공간적으로 매핑하는 방법이 이용되고 있다. 솔리드텍스쳐는 물체면상의 (x, y, z)의 값을 수식으로 계산한 텍스쳐이다. 파형무늬, 동심원모양 등은 수식(數式)으로 용이하게 구할 수가 있다. 나무무늬결, 대리석과 같은 모양은 동심원 혹은 금이간 형태의 표현을 위한 기본수식에 난수를 이용한 노이즈함수를 가미하여 보다 자연스러운 모양을 만들어 낼수 있다.
강의계획서로 가기 |