위치로그 : 태그 : 방명록 : 관리 : 새글

1. 3D 기초상식: POLYGON에 관해

Category : 과학,CG,상식 | 2007. 3. 15. 12:35








AUTODESK의 ALIAS 합병을 계기로 MAJOR 3D 소프트웨어에 관해 기본상식 수준으로 한번 다뤄봐야겠다는 생각이 들었습니다. 개인적으로 3D분야에 있기도 하니, 이쪽 분야에 관심이 많을 수 밖에 없어서요.

하지만 의외로 인터넷을 둘러보니 3D의 역사와 3D소프트웨어들에 관해 나온 사이트는 없고 거의다가 학원 선전에 관한 것이 대다수라 실망이 크더군요. 물론 제가 알고 있는 이런 저런 3D에 관련된 상식은 많이 알고 있지만 제가 머릿속에 담고 있는 3D에 관한 내용을 글로 정리하는 것은 전혀 다른 것이기 때문에 이를 원활히 하기 위해서는 자료의 중요성은 강조해도 지나치지 않은데 아쉬움이 크더군요.
혹시 이쪽 분야를 잘 다룬 사이트를 아시는 분은 덧글로 알려주시면 감사드리겠습다.


 

암튼 자료가 생각만큼 확보되면 다음과 같은 순서로 연재를 할까 생각중입니다. 어디까지나 생각이 그렇다는 것이지 사정에 의해 대폭 줄어들 수도 있음을 미리 밝힙니다. ^^

1. 3D 기초상식: POLYGON에 관해
2. 3D 기초상식: NURBS에 관해
3. 3D 기초상식: SUB-DIVISION에 관해
4. 3DS MAX
5. LIGHTWAVE
6. SOFTIMAGE
7. MAYA
8. 종합편

자 그럼 첫 번째 장으로 3D 기초상식 중 POLYGON에 관해 알아보도록 하겠습니다.

 



1. GEOMETRY란?

POLYGON과 NURBS를 알기 전에 더 먼저 알아둬야 할 단어가 있는데 바로 GEOMETRY라는 용어가 그것입니다. 지금처럼 상용화된 3D 소프트웨어가 있기 전에 대학이나 관련 연구소에서 컴퓨터를 이용하여 3차원상의 공간에 원하는 가상의 오브젝트를 만들 수 있는 프로그램을 짜는 과정에서 다양한 수학공식과 이론이 동원되었고, 이를 바탕으로 컴퓨터 화면에 탄생된 가상의 오브젝트를 만들 수 있게 되었는데 이 가상의 오프젝트를 바로 GEOMETRY라 합니다.

 지금 우리가 사용하고 있는 3D 소프트웨어들은 모두 다 이러한 GEOMETRY 구현 이론에 따라 사용자로 하여금 원하는 것을 쉽게 만들 수 있도록 미리 프로그램화 시켜 놓았고, 그 구현이론에 따라 다양한 모델링 방식을 선보이고 있습니다.  즉 원 클릭으로 3D 소프트웨어에서 아이콘을 클릭해 구(SPHERE)나 여러 기본 입체도형을 만들 수 있는 것도 실제로는 소프트웨어 내에서 다 계산해서 나온 결과의 산물이라는 소리이지요. 옛날 초창기 때 만들어진 원시적인 3D 소프트웨어들을 보면 구나 원뿔 같은 기본 지오메트리를 그릴 때마다 일일이 좌표값을 입력해 줘야 했습니다. 이것이 발전을 하여 간단히 직관적으로 바뀌어 마우스 클릭으로 가능해 진 것입니다.
이 GEOMETRY 구현은 구현이론에 따라 종류가 나눠지게 되는데 그 구현방식에 따라 POLYGON
방식이냐 NURBS 방식이냐로 나눠지게 되는 것입니다.


 

 

(그림1. 폴리곤과 넙스로 구현된 SPHERE GEOMETRY, WIREFRAME 상태)

 

 

 

 

(그림2. WIREFRAME 형태만 다르게 나타나지 렌더링을 걸면,

 폴리곤이나 넙스로 만든 SPHERE의 차이가 없음을 알 수 있다. 실제로는 차이가 있지만....)

 

 

 



2. POLYGON: 3D OBJECT의 가장 기본형

POLYGON방식은 가장 많이 쓰이는 모델링 방식이자 거의 GEOMETRY표준으로 쓰이는 방식입니다. 즉 좀 더 비약해서 말하자면 NURBS가 나오기 이전에는 3D에서 GEOMETRY를 만들 수 있는 유일한 방법이기도 했다는 소리입니다.
여기서 잠시 POLYGON의 사전적 의미를 살펴보면

 

POLYGON: <수학〉 다각형, 다변형(多邊形). a regular ~ 정(正)다각형.

 

으로 나오는데 이 사전적 의미처럼 POLYGON은 수학적인 면을 기초로 해서 만들어진 2D면이죠.
여러분 학창시절 수학시간 때 이것을 배웠을 겁니다. 도형의 기본 단위는 점,선,면이고 점과 점 사이를 연결한 것(실제로는 수 많은 일정 개수의 점들의 일렬적으로 늘어선 것)이 선이며 이 선들이 모여 하나의 면을 구성한다는 것을 말이지요. POLYGON도 이런 원리로 이뤄진 2D 면입니다. 이 두께가 없는 2D면들이 모여서 하나의 3D GEOMETRY를 구성하는 것이 바로 POLYGON 방식의 모델링이라 하는 것입니다.

 

 

(그림3. 기본단위인 폴리곤들이 하나로 묶여서 생성된 SPHERE GEOMETRY.

 빨간색으로 표시된 것이 기본단위인 폴리곤이다.)




3D 소프트웨어에서 가장 기본적인 3D OBJECT들이 바로 구(SPHERE), 상자(BOX), 원기둥(CYLINDER)들인데 이 기본적인 오브젝트도 그냥 하나의 ELEMENT로 구성되어진 것이 아닌 이런 기본 2D인 POLYGON들이 모여서 구성된 3차원 GEOMETRY입니다.

이렇게 POLYGON으로 구성된 3차원 GEOMETRY를 다른 말로 POLYGON MESH라고도 합니다.


다시 수학적 이야기로 돌아가서 한 면이 형성되기 위해 필요한 최소 점 수는? 바로 3개입니다. 점 3개가 연결되서 면이 형성된 것이 삼각면이지요. 수학에 바탕을 둔 POLYGON OBJECT들도 마찬가지로 최소 POLYGON 단위는 바로 삼각형의 POLYGON입니다.
그렇기 때문에 어떤 3D POLYGON OBJECT들도 전부다 이 삼각형이 최소 단위인 POLYGON이 연결되어 있는 구조입니다.

 

 

 

(그림4. 폴리곤 모델링의 가장 기본 단위인 삼각 폴리곤)
 

 



그런데 실제로 대부분의 3D 소프트웨어를 구동시켜서 기본 도형을 만들어 보면 기본 폴리곤 단위는 삼각 폴리곤이 아닌 사각 폴리곤으로 구성되어 있음을 알 수 있습니다. 하지만 보이는 것만 그렇게 보이는 것이지 실제로 이 사각 폴리곤들도 2개의 삼각 폴리곤이 붙어서 하나의 사각 폴리곤으로 구성되어 있는 구조입니다. 실제로 옛날 3D 소프트웨어들은 전부다 삼각 폴리곤으로 OBJECT들을 표현했습니다. 그러다 보니 복잡한 물체를 모델링을 할 때 EDGE수가 너무 많이 표현되서 편집할 때 굉장히 복잡해보이는 단점이 생기게 됩니다. 그래서 실제적으로 삼각 폴리곤이 연결된 OBJECT이지만 편집상 편의를 위해 사각 폴리곤을 이룰 경우 가운데 EDGE를 뷰포인트 상에서 생략되게 표현하게 된 것입니다. 각 3D 소프트웨어들은 이를 옵션에서 조절할 수 있게 해 놨으며 필요에 따라 숨겨진 EDGE를 보이게도 할 수 있습니다. (참고로 3DS MAX의 경우는 4.0버전부터 사각형 폴리곤이 최소단위인 EDIT POLY체계도 추가 도입하였습니다.)


 

(그림5. 겉보기에는 사각 폴리곤으로 이뤄진 SPHERE처럼 보이지만 실제로 모든 EDGE를 선택해보면 삼각폴리곤으로 이뤄저 있음을 알 수 있다. 점선으로 표시된 EDGE가 평상시에는 안보이는 숨겨진 EDGE이다. 그림은 CLICK하면 커집니다)


암튼 정리하자면 폴리곤 모델링의 요체는 2D의 삼각형 면이 이리저리 모여서 자동차건, 건담이건, 사람이건 만든다는 소리입니다.
 

 




3. POLYGON MODELING의 장단점

일단 모델링이라는 작업 자체가 면을 만들어 내기 위한 작업이고, 이 면들이 모여서 하나의 GEOMETRY 혹은 물체를 만들어 내는 작업이지요.
앞서 이야기 했지만 POLYGON 모델링은 점 3개가 모인 2D 삼각형인 기본단위인 POLYGON면을 이용해 GEOMETRY를 만드는 것을 의미합니다.
이 POLYGON을 분석해보면
점은 VERTEX라 하며 모서리 부분의 선을 EDGE라 하고 면 부분을 FACE라고 합니다.

 

 

(그림6. 폴리곤의 기본 요소. VERTEX(점), EDGE(모서리 선), FACE(면))

 

POLYGON 모델링은 이 3가지 요소를 끌고 당기고 돌출시키고 면을 나누고 해서 하는 것입니다. 그런데 폴리곤 삼각형은 기본이 2D인 평면입니다. 그렇기 때문에 이들이 모여서 하나의 GEOMETRY를 만드는 것은 좋은데 암만해도 평면이다 보니 곡면 모델링 하는데는 한계가 있고 힘든 경우가 많습니다. 실제로 POLYGON을 가지고 어떤 곡면을 만들려고 하면 면을 쪼개고 쪼개고 해서 단위면적당 면을 많이 만드는 수 밖에 없습니다. 그렇기에 완벽한 곡면은 POLYGON 태생상 만들 수 없습니다.
다음 그림들은 평면인 POLYGON으로 어떻게 곡면을 표현하는지 나타난 그림들입니다. (3DS MAX 기준)
 

(그림7. 일단 폴리곤으로 이렇게 각진 모델링 덩어리를 만든 다음)

 

(그림8. MESH SMOOTH명령을 줘서(이 명령어는 3D 소프트웨어마다 이름이 다르다. 3DS MAX기준임) 단위 면적당 면수를 늘려주게 해서 각진부분을 이렇게 곡면처럼 보이게 한다. 그냥 보기엔 완벽한 곡면처럼 보이지만 엄청 확대해 보면 이 모델링도 각이져 있음을 알 수 있다. 이것이 폴리곤의 한계이며 넙스의 경우에는 완전한 곡면이 생성될 수 있다.)
 

그렇기에 POLYGON 모델링은 예전에는 각이 만이 들어가는 건축,시뮬레이션 쪽, 그리고 데이터 양이 상대적으로 적게 들어가야 하는 게임분야에서 강세를 많이 띄었고(그러고 보니 넙스로 게임을 만든다는 소리는 못들어 봤군요) NURBS모델링이 개발된 이후 부터는 곡면이 많이 들어가는 유기체나 자동차 모델링쪽은 NURBS를 많이 쓰게 된 이유지요.(지금은 꼭 그런 건 아니지만 여전히 유효한 발언입니다.)
 

이런 POLYGON의 특성 때문에 곡면 모델링은 NURBS로는 간단히 만들 수 있는 것도 POLYGON을 이용하면 배 이상의 노력이 들어가는 것이 사실입니다. 그래서 한 때 우리나라에 MAYA열풍이 불었을 때 무조건 NURBS 모델링이 선호되었고 POLYGON 모델링은 3D를 잘 못하는 사람이 하는 것으로 잘못 왜곡되기 까지 했습니다.(과열된 열의가 낳은 일종의 쓸데없는 우월감이었지요)

그러나 이 POLYGON 모델링이 발전하게 됨에 따라 NURMS라는(3DS MAX에서 쓰이는 용어입니다. 다른 툴에는 또 다른 이름이 존재하지요. 예를 들어 라이트 웨이브에서는 메타넙스라고 합니다.) 새로운 개념의 SUB-DIVISION 모델링이 개발된 이후 POLYGON 모델링은 비약적으로 발전하게 되었고 오히려 지금은 이 모델링 방식이 선호받게 되었고 NURBS는 왜 써야 하나? 까지 유저들이 생각할 정도로 다시 POLYGON 모델링 방식이 다시 선호받게 되는 요상한? 현상까지 벌어지게 되었지요.(유행은 돌고 도는 법.....) 이 SUB-DIVISION방식은 3회째 자세하게 설명하도록 하겠습니다.

일단 POLYGON이 곡면이나 정교한 모델링 하는 데 NURBS보다 힘들지만 일반 3D 유저들이나 실무진 쪽에서 선호를 하는 이유는 NURBS에 비해 데이터 용량이 적고 가볍기 때문입니다. 지금 PC 성능이 많이 나아졌고 고성능화 돼서 워크 스테이션을 따라잡긴 했지만 아직도 PC에서 NURBS를 막 쓰기에는 상당히 무리가 가는 현실입니다. 그 만큼 NURBS 데이터는 무겁고 용량이 많이 나가서 자본 집약이 가능한 영화나 실제 정확한 데이터가 필요한 CAD 쪽에서 선호되지 게임이나 일반 3D쪽에서는 다소 꺼리는 추세입니다. 이에 대해서는 NURBS를 설명하는 다음 장에서 자세하게 다루도록 하겠습니다.
이렇게 데이터 자체가 가벼워서 폴리곤이 선호되는 탓도 있지만 폴리곤 모델링이 선호되는 또 다른 이유는 NURBS에 비해 편집이 용이하기 때문입니다.
보통 3D 소프트웨어를 가지고 하는 모델링 방식은 일반 돌이나 석고를 가지고 조각하는 것 처럼 전체 덩어리를 먼저 잡고 세부적인 디테일로 가는 것이 정석인데, NURBS의 특성상 세부적인 디테일을 다 잡아놨는데, 전체적으로 수정할 일이 생긴다면? 이것은 완전히 사람 돌게 만드는 일입니다. 물론 세부 디테일 다 잡아 놓고 수정들어가는 것은 폴리곤 모델링도 힘들긴 마찬가지지만(특히 MESH수가 많은 것들) NURBS의 경우는 차라리 새로 만드는 것이 더 빠를지도 모를 사태까지 벌어지기 때문이지요(아무리 그래서 새로 만드는 것보다는 수정하는 것이 더 빠르겠지요? ^^)
어짜피 이것에 대해 설명하려면 NURBS에 대해서도 SUB-DIVISION에 관해서도 대충 알아야 이해가 가는 내용이니, 일단 여기서는 NURBS보다 POLYGON이 데이터 량이 훨씬 가볍고 일단 모델링 완성 후 편집이 용이하기 때문에 선호되고 있다는 정도만 알아두시면 됩니다.

 

 


다음 회에서는 2D인 SPLINE에 대해 알아보도록 하겠습니다.










FAZZ 블로그의 모든 저작물들은 특별한 언급이 없는 한 크리에이티브 커먼즈 라이센스에 따라 저작자 표시, 비영리, 동일조건변경허락조건 하에 이용하실 수 있습니다.
FAZZ 블로그는 IE, FireFox, Opera 등의 주요 브라우저 모두에서 테스트 되었습니다.
Except where otherwise noted, All contents on FAZZ's Blog are licensed under a Creative Commons Attribution 2.5 License
Best viewd with all browsers - FireFox, IE, Opera and more...