블로그 이미지
유용한 무료유틸 리뷰, 다운로드, PC최적화,오류해결
by 엑시아유틸





POST Category

하위분류 모두 보기 (464)
무료유틸 이야기 (63)
리뷰 및 아이폰 이야기 (59)
PC오류 이야기 (60)
팁 이야기 (5)
코나EV 이야기 (7)
취미 이야기 (109)
Information (161)


Recent POST


Recent Comment

   모델링을 잘하는 것도 "재주" 중의 재주라고 할 수 있다. 그러나, 3D 모델링은 누구나 타고날 때부터 잘하는 것은 아니다. 많은 연습과 시행착오를 거쳐서 훌륭한 3D 모델러가 ?수 있다. 미술을 전공한 사람만이 좋은 양질의 모델링을 잘하는 것은 결코 아니다. 전혀 미술적인 감각이 없는 사람도 누구 못지 않는 양질의 모델링을 할 수 있음은 물론이다. 중요한 것은 개개인의 눈썰미가 과연 누가 더 세세한 것까지 볼 수 있느냐에 달려있다. 따라서 멋진 모델링을 할 수 있는 비법을 그동안의 경험을 바탕으로 여기에 소개하고자 한다.

1. 자신의 컴퓨터 주위에 있는 것부터 3D로 만들어라.
  길은 먼 곳에 있는 것이 아니다. 모델링 소재를 찾아서 이리저리 헤매지 말고, 먼저 자신의 목전에서 눈에 띄이는 것부터 모델링을 하여야 한다. 그 이유는 늘상 자신이 보면서 직접 참고하여 모델링할 수 있기 때문이다. 먼저 자신의 마우스를 만들고, 컴퓨터를 만들고, 책상을 만들고, 책상 위의 책을 만드는 방법으로 자신이 직접 눈으로 보면서 만들 수 있는 것부터 만들어야 한다.

2. 복잡한 것은 Line을 사용하여 윤곽을 따서 Extrude하는 방법으로 만들어라.
복잡한 물체일수록 Line으로 윤곽을 따서, Extrude를 적용하거나 Loft를 사용하여 만드는 습관을 들여야 한다. 곡선 형태의 오브젝트는 Line으로 윤곽을 따서 적절히 Extrude하거나 Loft를 사용하면, 웬만한 것은 다 만들어진다.

3. Low Polygon으로 오브젝트를 만드는 방법을 숙달시켜라.
대부분의 오브젝트들은 3ds max의 기본 오브젝트인 Geometry를 사용하여, Polygon 또는 Vertex 모드에서 주물럭거려서 만드는 방법에 숙달되어야 한다. 적은 양의 Face를 갖는 오브젝트를 만드는 방법에 먼저 숙달되어져야 한다.

4. 모든 모델링은 부분부분으로 조각내어서 모델링하는 방법을 사용하라.
한꺼번에 하나의 물체를 만들려는 욕심은 버리고, 그 물체의 요소요소를 조각내어서 모델링하는 방법으로 모델링을 하여야 한다. 조립식 권총이나 조립식 비행기, 조립식 탱크등과 같은 미니어춰를 만들 때와 똑같은 방법으로, 하나의 모델링을 여러 개의 부분조각으로 모델링하는 방법으로 모델링을 하여야 한다. 그래야, 원활한 애니메이션을 할 수 있을 뿐만 아니라, 쉽게 포기하지 않고 작업을 할 수 있다. 또 부분부분 조각하여야, 작업하면서 시스템의 부하를 최대한 줄일 수 있어서 작업하기가 한결 편할 것이다.

5. 가상의 물체를 모델링하려고 노력하지 말라.
세상에 존재하지 않는 자신만의 사이버적인 모델링은 시간낭비이다. 실존하고 현존하는 오브젝트를 만들도록 노력하여야 한다. 아무리 가상의 모델링을 잘한다 하여도, 현존하고 실존하는 양질의 모델링보다는 덜 칭찬을 받는다. 실제와 똑같은 모델링을 하도록 노력하여야 나중에 진짜로 실력있는 3D 모델러가 될 수 있다.

6. 모델링은 하면 할수록 누구나 실력이 늘어난다.
첫술에 배부르지 않는 것과 마찬가지로 3D 모델링은 하면 할수록 실력이 늘어난다. 성질 급한 사람치고, 좋은 모델링을 할 줄 아는 사람은 여태까지 본 적이 없다. 자신의 인내력과의 싸움이 모델링이다. 그러므로, 모든 것을 하루 이틀에 만리장성을 쌓아야 한다는 그런 조급증은 금물이다. 그렇다고 허구헌날 모델링을 한다고 시간을 허비하는 것도 결코 좋은 것은 아니다. 쉽게 포기하기 때문이다. 도중에 막히면 잠시 덮어두고, 다른 작업을 하는 방식으로 작업을 하다보면, 언젠가는 덮어두었던 것을 금방 할 수 있을 날이 곧 온다.

7. 자랑스런 대한의 아들 딸답게 한국적인 소재를 모델링하도록 하라.
되도 않는 실력으로 서양식 건물을 모델링한다고 야단이고, 서양 영화에서 나오는 것을 흉내내서 모델링한다고 법석을 떨어보아야 결국은 서양 모델링의 아류에 불과하다. 5천년 역사를 가진 우리의 것을 모델링하면, 누구에게도 자랑할 만한 소재가 될 것이다. 같은 시간과 같은 노력을 들여서, 서양의 아류에도 못 미치는 것을 만들 바에는 자랑스럽게 우리의 것을 소재로 모델링을 한다면, 아류가 아닌 주류가 될 것이다. 지금까지 거의 모든 책이나 작품을 보아도, 맥스맨처럼 한국적인 소재를 가지고 모델링하는 사람이 어느 누구도 없다. 지천에 널린 것이 한국적인 소재이다. 불국사, 석굴암, 경회루, 경복궁, 남대문,동대문,88올림픽 경기장, 월드컵 경기장, 초가집, 기와집, 가마솥, 젓가락, 밥상, 절구,항아리,된장,고추장,김치,깍두기,배추,감,배,대추,소나무,무궁화등등 소재가 너무나도 무궁무진한 것이 우리의 것이다. 이런 것을 모델링을 하면, 세계 최고의 3D 모델러가 될 것이다. 서양의 모델러들은 우리가 따라갈 수 없는 경지에 이르렀다. 그들과 서양 것으로 경쟁하려고 까불지 말고, 우리 것으로 그들을 감동시켜야 한다. 서양인들은 우리 것을 모르지 않는가? 우리 것을 만들어서 서양인에게 보여주어 보라. 그들의 입에서 감탄사가 절로 나올 것이다. 서양인은 태고적부터 동양에 대한 향수(오리엔탈리즘)와 무한한 동경을 품고 사는 사람들이다. 곡선의 미학이 풍만한 동양적인 것으로 서양인을 감동시켜야 한다. 그러기 위해서는 우리의 것으로 승부를 하여야 한다. 우리 것이 좋은 것이여~!

8. 스케치나 밑그림을 반드시 먼저 그려야 하는 것은 아니다.
간혹 스케치나 일러스트 또는 밑그림을 먼저 그려야 한다고 말하는 사람들이 있다. 틀린 말은 아니지만, 그럴 시간이 있으면 마우스로 뷰포트에서 직접 Line으로 그리는 것이 더욱 더 시간을 절약할 수 있다. 어차피 컴퓨터와 마우스로 우리는 먹고 산다. 이제 연필이나 펜은 우리의 영역을 떠난 것이다. 연필이나 펜으로 스케치를 하여 본들, 쓸데없는 공상만 할 뿐이다. 마우스를 자유자재로 움직여야 하는 것이 3D 모델러의 숙명이다. 마우스를 잡고 평생을 살 사람에게는 연필이나 펜은 더 이상 필요없다. 그와 같은 스케치나 밑그림은 머리 속에서 상상으로 그리는 것만으로도 족하다. 컴퓨터를 안고 살아야 하는 사람에게는 머리 속이 바로 캔버스요, 연습장인 것이다. 디지털 시대는 No Paper시대이다.

9. 인체 해부나 색채학을 따로 공부하여야 한다는 그릇된 생각은 버려라.
모델링과 맵핑을 잘하기 위하여 색채학을 공부하여야 한다거나 또는 캐릭터를 잘 모델링하려면 인체 해부학을 알아야 한다고 말하는 이야기들이 상당히 많다. 그렇다면, 미술을 공부한 사람과 의사들은 전부 훌륭한 3D 모델러가 될 수 있다는 말인가? 만일 그와 같은 소리가 맞다면, 장면에서 자동차를 모델링하고, 자동차가 달리는 카 레이싱을 연출한다면, 자동차 공학을 배워야 하고, 카 레이서 훈련을 받아야만 제대로 된 카 레이싱 장면을 연출할 수 있다는 말인가? 또 산과 들에 있는 나무와 숲을 잘 모델링하려면, 조경학을 공부하여야 한다는 말인가? 그렇지는 않을 것이다. 물론 약간의 상식적인 차원에서 그와 같은 것을 미리 알아두는 것은 대단히 좋은 프로 정신이며, 당연히 그렇게 하여야 한다. 하지만, 3D는 누구나 할 수 있으며, 또한 누구나 눈썰미만 있다면, 표현하지 못할 것이 없다. 누구나 특정 소재를 모델링하게 되면, 당연히 그 모델링에 대해서 스스로 자연히 공부하게 된다. 그것만으로도 족하다. 그 이상으로 따로 시간을 내어서, 인체 해부학을 공부할 필요도 없고, 무슨 색채학이라는 그런 책을 볼 필요도 없다. 중요한 것은 마우스로 컴퓨터 속에서 누가 더 눈썰미있게 잘 표현하느냐에 달려있는 것이다. 그것은 개인의 상식과 훈련된 감각만으로도 충분하다. 태권도를 할 줄 모르는 사람이 태권도 장면을 제대로 연출할 수는 없다. 또 스키를 탈 줄도 모르는 사람이 스키 활강장면을 제대로 연출할 수는 없다. 운전도 못하는 사람이 멋진 자동차 운전 장면을 연출할 수는 없다. 그렇다고, 작업을 위해 태권도를 배우라고 할 수 없을 뿐만 아니라, 스키를 배우라고도 할 수 없고, 운전 학원에 등록하라고도 할 수 없다. 태권도 장면은 태권도를 할 줄 아는 사람에게 작업을 지시하고, 스키 장면은 스키를 탈 줄 아는 사람에게 작업을 지시하고, 운전 장면은 운전을 할 줄 아는 사람에게 작업을 할당하면, 그만이다. 또는 그와 같은 장면을 리얼하게 해 본 경험이 있는 사람에게 작업을 지시하거나, 관련 비디오나 장면을 주의 깊게 보고 연출하면 그만이다. 그와 같은 태권도,스키,운전등과 같은 것은 개인의 상식과 역량일 뿐, 3D 모델링이나 애니메이션을 위하여 선행되어야 하는 필수적인 것은 아닌 것이다. 어차피 인간은 누구나 전부 다 만물박사이거나, 007 제임스 본드는 아닌 것이다. 따라서 훌륭한 3D 모델러는 스스로 자신을 훈련하고, 스스로 상식으로 충만되도록 노력하여야 하는 것이지만, 모든 것을 다 혼자서 할 수는 없는 것이다. 그러므로, 특정한 것을 따로 공부하여야 한다는 것은 시간이 남아도는 사람에게나 있을 법한 이야기이지만, 반드시 그렇게 할 필요는 없는 것이다.

10. 애니메이션을 먼저 알아야 모델링을 잘 할 수 있다.
필자는 지금까지 이런 주장을 오랫동안 하고 있다. 이 말의 의미는 애니메이션을 모르는 사람에게는 아무런 의미를 갖지 못한다. 애니메이션을 할 줄 아는 사람들은 이 말의 의미가 무엇인지 체험적으로 자연히 알게 된다. 3ds max에서 모델링은 애니메이션을 위한 수단일 뿐이다. 허구헌날 애니메이션되지 않는 스틸 이미지에만 온갖 노력을 기울이는 사람들에게는 이 말은 아무런 의미도 갖지 않는다. 특히 캐릭터의 경우에는 누구나 모델링을 하여 애니메이션하고 싶어한다. 그러나, 애니메이션을 해 본 적도 없는 사람들은 아무리 멋진 캐릭터를 만든다할지라도 결코 그 캐릭터를 애니메이션할 수는 없다. 이유는 간단하다. 애니메이션에 적합하도록 모델링하지 않았기 때문이다. 이러한 이유에서 애니메이션을 먼저 배워야 한다는 것이다. 자동차나 다른 움직이는 물체들도 마찬가지이다. 애니메이션의 원리를 모르고, 무작정 모델링을 하여본들 그것은 그림의 떡일 뿐이다. 지금까지 많은 3ds max 사용자들이 이러한 이유로 애니메이션 기술이 대단히 취약하다. 학원이나 책에서 모두 애니메이션을 모른 상태에서 모델링 기술을 가르치고 알려주니, 제대로 애니메이션을 할 수가 없는 것이다. 따라서 맥스맨21 아카데미에 있는 많은 애니메이션 예제를 공부하여 보면, 어떻게 모델링하는 것이 애니메이션을 가능하게 하는 지를 알려줄 것이다.

매핑

아무리 모델링을 꼼꼼하게 잘 한다 하더라도, 아무리 최신 렌더링 기법을 사용한다 하더라도 이것만으로는 우리가 원하는 모든 것들을 표현할 수가 없습니다. 오브젝트 표면에 모델링만으로는 감당할 수 없는 혹은 감당하기 힘든 디테일을 추가하기 위해 사용하는 방법이 바로 매핑(Mapping)입니다. 좀 더 적극적으로는 복잡한 모델링을 대체함으로써 경제적인 결과를 얻기 위해 매핑 기법을 사용하기도 합니다

그림 1. 매핑의 효과 (c)De Espona



Texture 매핑

보통 Texture 매핑이라고 하면 보통 비트맵 이미지를 이용해서 오브젝트 표면의 무늬를 입히는 것으로만 생각하는 경우가 많습니다. 물론 이 경우가 Texture 매핑의 가장 대표적인 예이기는 하지만 이렇게 표면에 무늬를 입히는 작업은 Texture 매핑을 응용한 예의 하나 일뿐 그 자체가 Texture 매핑은 아닙니다. Texture 매핑의 정확한 의미는 "외부에서 주어지는 값으로 변수나 색상 값을 대체하는 과정"이라고 할 수 있습니다.
방금 말씀드린 오브젝트 표면에 무늬를 입히는 경우는 오브젝트 표면의 색상을 결정하는 Diffuse 값에 매핑을 적용한 경우에 해당되는 것이죠. 매핑에 의해 오브젝트의 각 부분의 Diffuse 색상이 각기 다른 값을 갖게 되고 이것은 결국 Texture Map이 오브젝트 표면에 씌워진 것과 같은 결과를 만들어 주는 것입니다. Diffuse 매핑 혹은 Color 매핑이라고 부르는 방법이죠. 만약 물체의 투명도(Opacity 혹은 Transparency) 값에 매핑을 사용한다면 물체의 각 부분에 서로 다른 투명도를 적용되는 것이고 Shininess 값에 사용되면 물체 각 부분의 정반사 정도가 달라지는 것입니다.


매핑을 위해 "외부에서 값을 주는" 주는 가장 대표적인 방법은 비트맵 이미지를 사용하는 것인데 이때 사용되는 비트맵 이미지를 Texture Map혹은 매핑 소스(Mapping Source)라고 부릅니다. 또 다른 방법으로는 Texture를 일련의 과정을 통해 자동적으로 생성해서 사용하는 방법이 있는데 이런 방법은 Procedural Texture라고 부릅니다. 이 방법에 대해서는 뒤에서 다시 살펴보도록 하겠습니다
매핑 좌표

Texture Map를 이용해서 오브젝트 표면 특성을 대체하기 위해서는 Texture Map의 어느 픽셀이 오브젝트 표면의 어느 부분에 대응될 것인지를 결정해 주어야 합니다. 말이 좀 어렵다면 비트맵 이미지가 오브젝트에 씌워질 때 어떻게(위치, 방향, 크기) 씌워질 것인지를 결정하는 것이다라고 이해하면 되겠습니다.
이런 작업을 하자면 오브젝트 표면에도 Texture Map에 대응하는 좌표계를 설정해 주어야 하는데 비트맵 이미지는 2차원의 직교 평면을 이루고 있으므로 오브젝트 표면에도 이에 대응하는 좌표를 설정해 주어야 합니다. 그리고 이렇게 오브젝트 표면에 설정되는 좌표계를 매핑 좌표계라고 부르는데 오브젝트 평면에 매핑 좌표계가 설정되면 대응되는 좌표의 Texture Map의 픽셀 값(Pixel과의 혼동을 막기 위해 Texel이라고 부릅니다.)이 표면 특성 값으로 사용되어 매핑이 이루어지게 되는 것입니다.


매핑 좌표



매핑 좌표에서는 우리가 보통 사용하는 XYZ 좌표계 대신에 바로 앞 알파벳을 딴 UVW 좌표를 사용하는데 UVW는 각각 XYZ축에 대응됩니다. 결국 매핑 소스로 사용된 비트맵 이미지에서 가로 방향이 U축이고 세로 방향이 V축인 셈이고 일반적으로 매핑 좌표가 필요한 경우는 2D Map을 사용할 때이므로 그냥 줄여서 UV 좌표라고 부르기도 합니다. 또한 매핑 좌표는 한정된 평면 안에서의 위치만을 정의하면 되므로 UV 좌표에서는 좌표값은 항상 0과 1 사이의 값이 됩니다. 예를 들어 비트맵 이미지의 한쪽 끝이 0,0이라면 대각선 반대쪽은 1,1이고 정 중앙은 0.5, 0.5가 됩니다.
오브젝트에 매핑 좌표를 설정하는 가장 대표적인 방법은 3대 기본 좌표계인 직교, 원통, 극 좌표계를 이용해서 좌표계를 오브젝트에 투영(Projection)하는 방법입니다. 평면형(Planar) 좌표계는 사각형 평면을 따라 이미지를 투영하는 것이고 원통형(Cylindrical) 좌표계는 이미지를 원통형으로 구부려 투영하는 것입니다. 구형(Spherical) 좌표계는 일단 원통형(Cylindrical)으로 이미지를 둘러싼 다음 위와 아래를 다시 모아 마치 지도로 지구본을 감싸듯 이미지를 투영하는 것입니다.

기본 매핑 좌표계 (c)Rosalee Wolfe



그러나 이런 방법은 개념이 간단한 만큼 다음과 같은 단점을 갖고 있습니다. 평면형(Planar) 좌표계는 비트맵 이미지가 한 방향에서 투영되므로 투영되는 방향과 평행을 이루지 않는 면들이 있을 경우 줄이 생기며 원통형(Cylindrical) 좌표계는 이미지의 양쪽 끝이 만나는 지점에서 무늬가 불연속적이 되고 뚜껑 부분 처리가 힘들죠. 구형(Spherical) 좌표계는 역시 원통형 좌표계와 마찬가지로 양쪽 끝이 만나는 지점에서 무늬가 불연속이며 극지점 처리가 어렵다는 단점이 있습니다.


투영 매핑 좌표의 단점



매핑 좌표를 설정하는 또 다른 방법으로는 오브젝트 표면 자체에 내장되어 있는 좌표를 이용하는 방법이 있습니다. Bezier Patch나 NURBS Surface같은 Parametric Surface들은 그 생성 원리상 각 표면이 기본적으로 내장된 UV좌표를 갖고 있으므로 이 UV좌표를 그대로 매핑 좌표로 할 수 있습니다. 또한 최근에는 이런 방법을 확장시켜 Parametric Surface를 이용해서 원하는 모양의 매핑 좌표를 만들고 이를 오브젝트에 투영시키는 방법이 개발되어 사용되고 있습니다.

NURBS Surface의 매핑


하지만 어떤 방법을 사용하더라도 부분 단점을 갖고 있을 수밖에 없기 때문에 지금 이 시간에도 다양한 매핑 좌표 설정 방법들이 속속 개발되고 있습니다.


3D Painting, Texture Unwrap


대개의 경우 매핑 작업은 매핑 소스를 먼저 준비한 다음 매핑 좌표를 잘 조절해서 원하는 위치에 Texture Map을 적용시키는 방식으로 진행되어 나갑니다. 하지만 이런 방법을 사용하기 적합하지 않은 경우도 있습니다. 예를 들어, 사람 얼굴을 위한 Texture Map을 만드는 경우 아무런 기준도 없이 모델에 딱 맞는 매핑소스를 그린다는 것은 매우 어려울 것입니다. 따라서, 이런 경우에는 맵을 그려 오브젝트에 맞추는 것이 아니라 매핑 좌표에 맞춰 오브젝트를 펼쳐 놓고 이 위에 맵을 그리는 방식으로 작업을 진행하게 되는데 이런 방법을 Texture Unwrap이라고 합니다.



Texture Unwrap


또는, 붓을 들고 조각품을 색칠하듯 3차원 상태의 모델을 보며 그 위에 직접 Texture Map을 그리는 방법을 사용하기도 하는데 이런 방법을 3D Painting이라고 합니다. 이 방법은 뭐니 뭐니해도 직관적으로 작업이 이루어진다는 점이 가장 큰 장점입니다. 하지만, 아무래도 정밀한 작업은 힘들기 때문에 아주 정밀하게 맵을 그려야 하는 경우에는 앞서 말씀드린 Texture Unrwap 기법을 사용하는 경우가 더 많습니다.

BodyPaint 3D (c)MAXON computer



Procedural Texture

컴퓨터 그래픽에서 Procedural이라는 용어가 나오면 일단 "자동적인"내지는 "컴퓨터에 의해 만들어지는"이라고 해석하면 됩니다. 그렇다면 Procedural Texture Map의 뜻은 "컴퓨터에 의해서 자동적으로 만들어지는 Texture Map"정도가 되겠지요. Procedural Texture Map의 핵심은 이와 같이 사용자에 의해 주어지는 변수 값들을 바탕으로 특정 함수(주로 Fractal이나 Noise 함수)를 이용해서 Texture Map을 컴퓨터가 스스로 만들어 낸다는데 있습니다.

Procedural Texture


주위에서 가장 흔하게 볼 수 있는 Procedural Texture의 예로는 포토샵에 있는 Gradient 기능을 생각해 볼 수 있습니다. 여러분들이 시작 지점의 색상과 위치 끝나는 지점의 색상과 위치 등 몇 가지 변수 값들을 지정해 주기만 하면 설정에 따라 아주 멋진 Gradient를 만들어지죠. 그런데 이렇게 만들어진 결과를 3D 프로그램에서 매핑 소스로 사용하고 싶다면 어떻게 할까요? 물론 포토샵에서 만들어서 비트맵 이미지로 저장한 다음 3D 프로그램으로 가져와 사용해도 되겠지만 그것보다는 아예 Gradient를 만드는 프로그램 루틴을 3D 프로그램에 알려준 다음 3D 프로그램이 알아서 Gradient를 만들어 Texture Map으로 사용하면 더 편할 것입니다. 이것이 바로 Procedural Texture의 기본 원리입니다.

Procedural Texture는 생성되는 데이터의 자원에 따라 2D Procedural Texture와 3D Procedural Texture로 나눌수 있는데 앞서 언급한 Gradient의 경우는 2D Procedural Texture라고 할 수 있습니다. 2D Procedural Texture의 경우는 그냥 비트맵이 그때그때 생성되어 사용된다고만 생각하면 어려울 것이 없습니다. 당연히 매핑 좌표도 필요하겠죠.

중요한 것은 3D Procedural Texture입니다. Solid Texture라고도 불리는 이 방법은 주어진 함수에 의해 Texture Space라는 3차원 공간을 형성하고 오브젝트를 이 공간에 집어넣어 표면의 색상이나 변수 값을 결정하는 방법입니다. 돌덩이를 깎아내는 과정과 똑같다고 보면 되겠습니다.




Bump 매핑 & Displacement 매핑

Bump 매핑이란 오브젝트 표면의 울퉁불퉁함을 표현하기 위한 특수한 형태의 Texture 매핑으로 (1)아스팔트 표면처럼 모델링으로는 처리하기에 너무 미세하게 거친 표면이나 (2)수면처럼 울퉁불퉁한 모양이 애니메이션 되어야 하는 경우에 주로 사용됩니다.

그림11에서 파란 화살표는 각 면의 Normal로서 면은 그대로 두고 Normal 만을 흐트러뜨리면 가운데 그림과 같은 결과가 얻어집니다. 바로 이와 같이 오브젝트에 적용된 매핑 소스의 밝기 값에 따라 오브젝트 표면의 Normal 값을 변화시켜 울퉁불퉁한 표면을 처리하는 방법을 Bump 매핑이라고 합니다. 일종의 눈속임이죠. 결국 Normal만을 흐트려뜨렸을 뿐 오브젝트 자체에는 아무런 변화가 없으므로 중간 부분은 그럴듯하게 보이지만 오브젝트 가장자리는 여전히 직선을 이루는 문제가 발생합니다.


그림 11. Bump 매핑과 Displacement 매핑



그래서 눈속임이 아니라 기하체의 형태 자체를 매핑 소스의 밝기 값에 따라 바꿔버리는 방법을 사용하게 되었으니 그것이 바로 Displacement 매핑입니다. 그림은 Displacement 매핑에 의한 결과로서 가장자리를 보면 Bump 매핑과의 차이를 쉽게 구별할 수 있습니다.


Environment 매핑

지금까지 살펴본 내용은 모두 Texture Map을 오브젝트 표면에 대응시키는 Texture Mapping에 대한 얘기들이었습니다. 하지만, 우리는 또 다른 형태의 매핑을 사용할 수 있으니 바로 Environment 매핑입니다. 이 기법은 이미지를 오브젝트 표면이 아닌 환경(Environment)에 매핑하는 기법으로 Local Illumination Model만을 사용하는 렌더러에서는 반사(Reflection)나 굴절(Refraction)과 같이 오브젝트 상호간의 관계에 의해 생성되는 현상들을 표현할 수 없었기 때문에 이를 해결하기 위해 도입된 방법입니다. 혹자들은 "가난한 자의 Ray Tracing"이라고 부르기도 하지요. 비록 요즘 하드웨어 환경이 좋아지다 보니 Ray Tracing을 이용하기가 쉬워져서 다소 인기가 시들해진 감은 있지만 아무리 Ray Tracing이라 하더라도 반사가 정확하게 표현되려면 장면 안에 반사될 물체들을 모두 만들어 주어야 하기 때문에 여전히 많이 활용되고 있는 기법입니다. 카메라 뒤 보이지도 않는 부분까지 모두 만드느니 이 방법을 여전히 경쟁력을 갖고 있습니다. Toy Story에서도 반사와 굴절 부분은 Ray Tracing이 아니라 Environment 매핑에 의해 모두 처리되었습니다.(PR Renderman은 Ray Tracing이 지원되지 않는 Scanline Renderer입니다.) Environment 매핑은 시점이 바뀌거나 오브젝트가 움직이게 되면 오브젝트 특정 지점에서 반사되어 보이는 부분이 바뀌게 되므로 해당 오브젝트 표면의 색상도 바뀌는 특징을 갖습니다. 또한 환경에다 매핑을 하므로 오브젝트에 별도의 매핑 좌표를 만들 필요 없죠.

Environment 매핑을 구현하기 위한 가장 대표적인 방법은 장면 안에 천체와 같은 가상의 거대한 구가 있다고 가정하고 여기에 이미지를 매핑해서 환경(Environment)으로 사용하는데 이를 구형 환경 매핑(Spherical Environment Mapping)이라고 합니다.

그림 12. 구형 환경 매핑(Spherical Environment Mapping)

혹은 가상의 6면체를 만들어 환경을 구성하는 Cubic Environment 매핑도 많이 사용하는데 이 방법은 Spherical Environment 매핑에 비해 이미지의 왜곡 현상이 덜 하다는 장점을 갖습니다. 반면에 매핑 소스로 사용될 6장의 이미지를 만들기가 매우 힘들다는 단점도 있죠. 따라서 Cubic Environment 매핑을 사용할 때에는 별도의 매핑 소스를 만들기보다는 컴퓨터가 장면에 가상의 카메라 6대를 설치하고 이를 통해 자동적으로 매핑 소스를 만들어 쓰는 방법을 사용하는 경우가 많습니다. 뭐 이렇게 되면 이론적으로는 거의 Ray Tracing과 거의 차이가 없지요.


 

그림 13. Cubic Environment 매핑
사용자 정의 검색
AND