cglandlogo First Page
고객센터   
gallery media job community contentsmall  
  dbrush Blizzardfest 2014
 
[튜토리얼][강좌]Max 와 Lightscape의 건축응용(6)   2001-07-13
지난번 강좌에서 다루었던 내용에 대하여 필자에게 엄청난 양의 질문 메일이 날아왔다. 그래서 필자로서는 다음 내용으로 다루고자 하는 실외공간의 래디오시티에 대하여 잠시 보류하고, 보충설
씨지랜드기자 cgland@cgland.com
ⓒ 디지털브러시 & cgland.com, 무단 전재 및 재배포 금지
게시글을 twitter로 보내기 게시글을 facebook으로 보내기 게시글을 Me2Day로 보내기

3D Studio MAX와 Lightscape의 건축응용 (Q&A)

지난번 강좌에서 다루었던 내용에 대하여 필자에게 엄청난 양의 질문 메일이 날아왔다. 그래서 필자로서는 다음 내용으로 다루고자 하는 실외공간의 래디오시티에 대하여 잠시 보류하고, 보충설명을 할 필요를 느꼈다.


알파채널

알파채널에 대하여 빗발치는 문의가 있었다. 이 글을 읽는 사람 중에는 필자보다 그래픽 분야에 더 정통한 사람이 있어서 비웃을지도 모르지만 감히 어줍잖은 필자의 지식으로 설명을 하자면, 알파채널이라는 것은 이미지의 투명도나 마스크, 선택 여부를 설정할 수 있는 일종의 여유부분이라 할 수 있겠다.
인간이 지각할 수 있는 모든 색상은 24비트 컬러로 표현 가능하다고 한다. 이때 24비트는 2의 24제곱 만큼의 값을 가진다는 뜻이다. 현재 이용되고 있는 이미지 파일 유형의 대부분은 24비트 컬러를 지원한다. 모든 자연색을 사실 그대로 재현할 수 있다는 뜻에서 이 24비트 컬러를 트루 컬러(true color)라고들 부른다. 그러나, 요즘도 많이 사용하고 있는 GIF 형식의 이미지 파일은 원래 8비트의 색상만을 나타낼 수 있도록 되어 있으므로, 하나의 파일에서 최대 표현가능한 색상수는 2의 8승, 즉 256색이 되는 것이다.
그렇다면, 이미지 파일은 24비트의 색 표현을 해 주는 것 만으로 표현을 못하는 색상은 없게 되므로, 어떤 이미지 파일 유형지든지 간에 최대 24비트의 색상을 지원하기만 하면 어느 누구도 색상에 대해서는 시비를 걸수 없게 된다. 그런데, 머리가 잘 돌아가는 사람들은 여기에서 만족하지 않고, 24비트에다가 8비트를 더 보태서 32비트짜리 이미지 파일 유형을 만들어냈다.
색상을 표현하는데는 24비트 만으로 충분하니까, 8비트를 덧붙여서는 그것을 알파채널이라고 부르는 것이다. 이 알파채널은 통상적으로 완전백색에서 완전흑색까지의 256단계 명암을 가지는 그레이스케일 채널로서, 그래픽 프로그램에서는 이 채널을 여러가지로 응용하여 물체의 투명도를 지정한다든가, 효과를 낼 때 사용할 수 있도록 해 준다.
실제로 요즘의 포토샵은 워낙 레이어 기능이 강력하기 때문에 알파채널의 유용성이 많이 줄어들었지만, 4~5년 전에 레이어가 없었던 시절 포토샵을 사용했던 고급 유저들은 이미지의 선택 윤곽선 처리라든가 겹침 관계 설정등에 알파채널을 이용할 수 밖에 없었다. 여분의 8비트 정보가 들어있는 그레이스케일 정보를 이용하여 물체를 선택하면, 부드럽게 윤곽을 지워버린다거나 다른 물체의 위에 떠 있는 효과를 쉽게 만들어낼 수 있었다.
그러자면 알파 채널을 포함할 수 있는 그래픽 파일 포멧이 있어야 하는데, 필자가 아는바로는 TIF와 TGA 포멧이 알파 채널을 포함하는 통상의 이미지 파일 포멧이다.
물론 특정한 그래픽 프로그램마다 고유의 파일 포멧을 가지는데, 예를 들어 포토샵의 PSD 포멧 같은 것도 당연히 알파채널을 지원한다. 그러나 이런 고유 포멧은 범용성이 없다는 점에서 논의에서 제외되어야 할 것이다.
원래 알파 채널은 이처럼 2D 그래픽 프로그램에서 활용되어 물체들 사이의 전후 관계를 쉽게 표현할 때 도움을 주었지만, 똑똑한 사람들이 알파 채널을 그 정도 활용에 그칠 리 없다.

원래부터 3차원의 좌표계를 가지는 3D 패키지에서 왜 알파채널을 지원하는 것일까? 해답은 결국 최종 결과물의 미디어 유형 때문이다. 3D 공간에서 일어나는 어떤 사건을 재현한 표현물을 제작하였을 때, 그것이 발표되고 배포되기 위해서는 2차원적인 표현만을 할 수 있는 기존의 미디어로 출력되어야 한다. 근사한 로봇 액션물을 제작하더라도 결국 대중에게 발표되는 것은 3차원 정보가 모두 담긴 데이터 파일이 아니라, 2차원의 화면상에서 움직임을 보여주는 동영상 파일에 불과한 것이다. 어떤 면에서 보자면 "렌더링"이라는 과정은, "데이터"를 기존의 미디어에 맞도록 변환하여 출력해 내는 것을 뜻한다고 생각할 수도 있겠다.
그래서 결국 3차원적인 과정을 통하여 제작되었던 데이터들은 2차원의 출력물이 되어버린다. 3D 그래픽 분야에서는 이 2차원 출력물들을 모아서 합성하고, 편집하고, 때로는 변형하기 위하여 2D 그래픽 소프트웨어가 필요하게 된다. 그런데 이 2D 그래픽 소프트웨어에는 3차원 좌표를 인식할 수 있는 방법이 없다. 가장 적당하게 이용할 수 있는 방법은 알파 채널 정도...... 그러면 렌더링된 이미지에 물체의 깊이 좌표를 알파채널로 첨가시키면 2D 그래픽에서 그나마 3차원적인 효과를 볼 수 있지 않을까 고안하였던 것이다.


1. 3D -> 2D 의 알파채널 활용

현재 사용되는 거의 모든 3D 패키지들은 렌더링 장면을 알파채널 포함하여 저장할 수 있도록 되어 있다.

예를 들어, 3D Studio Max로 어떤 장면을 렌더링 하였을 때, 렌더링 장면을 저장하면서 TGA 포멧에 알파채널을 포함시키면 나중에 배경을 쉽게 분리해 낼 수 있게 된다.

혹시 맥스를 사용하면서 렌더링 장면을 저장할 때 알파채널을 아직 이용하지 않고 있다면, 지금부터는 무조건 알파채널을 포함하여 저장하도록 하자. 맥스 렌더러에서 알파채널을 포함하여 저장하는 방법은 아래의 그림과 같다.





그럼 이렇게 같이 저장된 알파채널을 어떻게 써먹는 것인지를 얘기 안할 수 없겠다. 일단 그럼과 같이 간단한 박스를 몇개 준비하자. 세로로 높이 쌓아 놓고, 중간 중간에 투명하거나 반투명하도록 박스를 준비하면 실습 준비는 끝났다. 한가지만 더 하자면, 배경으로 요란한 그림을 넣어주면 좋다.



렌더링 시키고 나서 위에서 설명한 방법대로 알파채널을 포함하도록 이미지를 저장한다. 그리고 포토샵에서 그 렌더링 이미지 파일을 연다. 그리고, 그에 합성할 이미지도 준비하자.



요녀석의 알파채널을 열어보면 이렇게 생겼다.



배경이 들어가는 부분은 완전 검정, 물체가 있는 부분은 완전 백색이다. 그리고 물체가 반투명한 부분은 회색이 되겠다. 그럼 메뉴에서 Select / Load Selection...을 골라 알파채널을 선택영역으로 설정하자.



그러면 아마 상자들이 선택될 것이다. 즉, 알파채널의 백색부분은 완전 선택이 되고, 회색 부분은 명암에 따라 부분 선택이 되는 것이다. 그럼 이 선택 부분을 새로운 배경이 될 이미지로 옮겨 보자.



그러면 아마 이렇게 보일 것이다. 반투명한 상자를 주목하라. 배경이미지가 훌륭하게 비쳐 보이지 않는가. 즉, 2D 프로그램에서 알파채널을 이용하여 물체를 선택한다는 것은 그 물체의 투명도까지도 정확하게 반영한다는 뜻이 되겠다.

맥스에서는 이렇게 렌더링 이미지에 알파채널을 포함시키는데, 라이트스케이프도 가능할까? 물론 가능하다.


2. 2D -> 3D 의 알파채널 활용

어떤 이미지 파일에 8비트의 채널을 추가한 알파채널은 매핑 이미지에 포함시켜 사용할 때 매우 즐거운 능력을 발휘한다. 아래의 그림을 보라.



흔히 오퍼시티 맵(opacity map)이라 불리우는 기법이 바로 이런 것이다. 단, 맥스에서의 오퍼시티 맵은 그것 자체가 하나의 이미지 파일인 것은 웬만한 맥스 유저라면 다 아는 사실일 것이다.

그러나, 라이트스케이프는 매핑 이미지에 포함된 알파채널을 오퍼시티 맵의 개념으로 이용한다. 그럼 먼저, 지난 강좌의 철망 부분을 설명하겠다. 철망이 될 서피스를 모델링한다. 당연히 모델링은 맥스에서 한다. 아래 그림의 요녀석이 바로 철망이 될 것이다.



라이트스케이프에서 이 철망에 매핑할 이미지는 알파채널을 가져야 한다. 물론 철망의 철사가 있어야 할 부분은 흰색으로, 공백이 되어야 할 부분은 검정색이어야 한다. 포토샵에서 알파채널을 만들어 넣자. 그 알파 채널을 보면 이렇다.



아주 간단하다. 재질에 텍스츄어를 부여하면서 cutout만 시켜주면 검정색 부분은 렌더링이 안된다. 텍스츄어 크기를 잘 조절하면 무수히 많은 반복을 하고 있는 철망이 탄생한다.






노멀(Normal)

라이트스케이프에서의 노멀 취급 문제에 대하여서도 역시 질문 공세가 이어졌다.

모든 3D 패키지는 이 노멀이라는 녀석을 취급한다. 노멀을 영한 사전에서 찾아보면 법선 또는 수선이라는 용어가 나온다. 고등학교때의 가물가물한 기억을 되살려 보자면, 어떤 면에서 수직으로 튀어나오는 선을 수선이라고 부르기도 했던 것 같다.
3D 의 세계에서 모든 서피스는 노멀에 의해 겉면과 속면, 혹은 앞면과 뒷면이 구별된다. 맥스의 Standard Primitive 인 Plane을 그려놓고 보면 그릴때의 반대 방향에서는 전혀 보이지 않을 것이다. 이것은 노멀이 모니터를 보고 있는 눈의 방향을 향하지 않고, 모니터 저 뒤쪽을 향하고 있다는 뜻이다.
다시 말하자면 모든 서피스는 노멀을 가지고 있고, 이것은 서피스의 매우 중요한 속성 중 하나이다. 물론, 마야를 다루는 사람들은 무슨 헛소리를 하고 있냐고 말할 수도 있겠다. 그러나, 마야도 분명히 노멀을 고려한다. 단지, 마야에서는 서피스의 양쪽면이 동시에 나타나도록 하는 것이 기본설정이고, 맥스는 노멀쪽 하나만 나타나도록 되어있는 것이 기본이라는 사실이 다를 뿐이다.
맥스에서 건축 모델링을 하는 사람은 이런 노멀의 개념에 익숙치 않음을 종종 발견하게 된다. 아마도 간편한 솔리드 모델링만을 하여 왔기 때문인 것 같은데, 라이트스케이프를 잘 사용하려면 모든 물체가 서피스로 이루어져 있음을 숙지하여 활용하여야 한다.

1. 솔리드 모델 -> 서피스의 집합으로 취급
요즘은 웬만큼 특수한 건물이 아니라면 오토캐드로도 서피스 모델링은 하지 않는다. 왜냐하면 바보짓이기 때문이다. 모델링 데이터의 크기를 조금 아끼려고 고생을 사서 해서야 되겠는가. 필자가 맥스의 한계점을 느끼고 그걸 넘어보려고 몇가지 다른 3D 패키지들을 만져보았지만, 언제나 맥스로 다시 돌아오는 이유는 맥스의 솔리드 모델링 방식이 아주 훌륭하기 때문이다.
직선이나 정형적 형태가 많은 건축물 모델링에서 솔리드 모델링은 다른 대안을 가질 수 없을 정도의 비중이 있다. 따라서 모델링은 솔리드 방식으로 하되, 그것을 서피스의 감각으로 다루어줄 필요가 있다.
예를 들어 다음의 그림을 보자. 서피스의 측면만으로 보자면 솔리드 모델링은 매우 낭비가 많은 모델링 방식이다. 두개의 솔리드 물체가 겹쳐져 있는 경우, 그곳에는 반드시 겹쳐진 서피스가 생긴다.



그러므로 간단한 솔리드 모델링을 하더라도, 렌더링할 때 컴퓨터에 걸리는 부하를 생각한다면 솔리드를 깨서 필요없는 서피스를 지워야 할 필요가 있다. 상황이 위의 그림과 같은 경우 가장 완벽한 해결은 두개의 물체를 유니온 시켜버리는 것이다. 그런데 서로 다른 재질을 꼭 주어야 한다면 작은 상자 부분과 큰 상자 부분을 detach로 분리하면 된다.

2. 서피스의 노멀 성질을 활용

이를테면 커튼이나 블라인드와 같은 물체는 거의 두께가 없는 물체이다. 이러한 물체는 처음부터 간단하게 서피스를 만들고 나서 더블 사이드(2-sided) 재질을 부여한다. 만약 렌더링 장면에 한쪽 면만 영향을 준다면, 더블 사이드 따위도 필요없다. 그러나, 빛이 서피스의 노멀 반대편에서 흘러들어오면 그림자마저 생기지 않기 때문에 더블 사이드가 필요할 것이다.

그리고 대부분의 경우 창문의 유리는 밖에서 안, 또는 안에서 밖으로만 보게 된다. 이런 유리를 표현할 때, 박스와 같은 솔리드 물체로 유리를 만들면 서툰 솜씨라 하겠다. 필자가 생각하는 능숙한 솜씨는, 실내에서 외부를 볼 때는 실내 쪽으로 노멀을 맞추어준 서피스를 그려주는 것이다. 혹시 실외에서 실내로 태양광이 유입되면서 푸르스름하거나 빨간 유리 색깔이 묻어나오게 하고 싶다면, 역시 유리의 재질을 더블 사이드 재질로 설정하여야 할 것이다.

문제는 벽체인데, CG의 공간은 우리가 살고 있는 실제 세계와는 무관하다는 점을 인식하여야 한다. 필자가 생각하는 잘된 실내 모델링이란 아래의 그림과 같은 것이다.



재질이니, 빛이니 하는 것들을 다 떠나서 모델링의 관점에서만 보자면 이것은 매우 효율적인 것이다. 현재 천장과 카메라를 향한 부분의 벽체는 없는 것처럼 보이지만 분명히 존재한다. 천장 서피스와 벽체 서피스의 노멀을 모두 내부로만 향하게 하였기 때문에 공간의 바깥쪽에서 관찰하면 마치 없는 것처럼 보이는 것이다. 모델링을 이렇게 해 놓으면 카메라를 조금 바꿀때 마다 일부분의 벽체를 숨기거나 삭제할 필요없이 내부공간을 잘 관찰할 수 있다. 마치 아래 그림처럼......



이것 또한 천장을 걷어내고 렌더링 한 것이 절대 아니다.
그렇다면 강좌에 등장하였던 실내의 모델링은 어떤 구조인지 한번 보도록 하자.





역시 외부 벽면은 없고, 내부 벽면의 노멀은 안쪽을 향해 있다.



AutoCAD와 Lightscape

모델링 툴로 오토캐드를 사용할 수 있느냐는 질문이 있었다. 당연히 가능하다. 그러나, 필자는 오토캐드의 3D 기능을 사용하지 않은지 오래되었다. 이제는 도면을 그리기 위해서만 오토캐드를 가끔씩 돌리는 정도이다. 따라서 라이트스케이프와 오토캐드의 연계 플레이에 대해서는 그다지 할 말이 없다. 오토캐드의 모델링 데이터를 문제없이 받아들일 수 있다는 정도는 자신있게 주장할 수 있다.



카메라 설정에 대하여

질문을 받고나서 곰곰히 체크해 보니 이 부분에 대해서는 말만하고 건너뛰었다는 것을 깨달았다. 맥스에서 카메라를 설치하여 카메라 데이터를 저장하는것은 분명히 했는데, 라이트스케이프에서 그 데이터를 불러들이는 과정이 빠져버렸다.

순서는 다음과 같다.

View / Open... / 카메라 설정 파일 선택

그러면 맥스에서 설치한 카메라와 똑같은 시점을 얻을 수 있다.



Area Light의 방향 설정에 대하여

Pick Panel을 어디서 찾느냐는 질문도 있었는데, 필자 약간 짜증도 나고 재미도 있었다. Luminaire Properties의 Source Type 바로 옆에 있다. 짜증의 이유는 3회째의 강좌에 나오는 그림에도 이 Pick Panel이 표시되어 있기 때문이다.



그러나 한편으로, 만약 내가 라이트스케이프를 처음 만져보는 사람이라면 "위 그림의 오른쪽 부분에 있는"이라는 식으로 자세하게 설명을 들어야 알 수 있을지도 모른다는 생각을 하였다.

 
스튜디오 연결끊기