폴리와 폴리곤, 트라이앵글 이야기 (The story of Poly, Polygon and Triangle) by 김윤정


의외로 기초적이면서 단순하지만, 이상하게 오해되고 있기도 한 폴리와 폴리곤, 트라이앵글 이야기입니다.

기본적으로 폴리곤 ( Polygon: 다각형, 多角形 ) 이란, 세 개 이상의 선분으로 둘러싸인 평면도형을 말합니다.
( 출처: 네이버 백과사전 )
StarPolygonWrappings

mathworld.wolfram.com/StarPolygon.html


즉 폴리곤이란 삼각형만을 의미하는게 아니라 그냥 '다각형' 을 의미하는 것으로, "삼각폴리곤" "사각폴리곤" "오각폴리곤" "십만 육천 구백 팔십 삼 폴리곤" 이 모두 "폴리곤" 이라 부를 수 있는 것들이라는 것이지요.






그렇지만 그래픽 카드에서 3D 그래픽을 처리할 때에는 가장 간단한 단위인 삼각형만을 생성할 수 있기 때문에 컴퓨터 그래픽스에서는 "폴리곤" 을 "삼각형" 이라는 의미로 널리 사용하게 되었습니다.
(주 : 예전에 넙스를 실시간 처리하는 그래픽 카드는 들어본 적이 있습니다만, 삼각형 이상의 다각형을 동시 처리하는 그래픽 카드는 아직 들어본 적이 없습니다. 혹시 존재하고 있나요?)

그리고 그걸 줄여서 "폴리(Poly)" 라고도 부르기 시작했습니다. "삼만 육천 폴리.." 라는 식으로 말이죠.
즉 삼만 육천 폴리는 삼만 육천개의 삼각형 (= 트라이앵글) 을 의미하는 것이었었죠.
사실 이것은 사전적으로 보면 무척 위험한 표현이긴 했습니다. "폴리" 라는 말의 의미는 "수가 많다 / 다수의" 의 의미를 가지는 접두어였거든요. 하지만 뭐 말이 통한다면 상관없었었었었었었었었었었었던거죠.

즉 그래픽 카드의 처리속도를 나타내는 폴리곤 처리양이라는 의미는 그래픽디자이너나 프로그래머나 모두가 같은 의미로 잘 이해하고 사용하고 있었습니다.


뭐 거기까지는 모두 행복하게 살고 있었습니다만...

어떤 말을 마음대로 자유롭게 써도 상관없었죠.



그렇게 새로운 기능인 Edit Poly 가 나오기 전까진 우린 행복했는데....




그런데 맥스 7인가 8인가부터 신기한 기능이 나오게 됩니다. 그건 지금까지의 모델링 작업의 삽질을 줄여주는 유용한 도구로,
삼각형만 처리하던 3D MAX 에서 삼각형 이상의 폴리곤도 처리할 수 있게 바뀌었던 거지요.

예를 들어 저 가운데 버텍스를 삭제해 버린다면,
더이상 삼각형을 유지하지 못하므로 저 아래의 면은 위 그림과 같이 통째로 날라가고,
다시 처음부터 면을 만들어 이어붙여 줘야 했었다는 거지요.

그리고 저기 보이는 사각형 폴리곤도 사실은 삼각형 폴리곤들이고, 엣지가 숨겨져 있었을 뿐이었습니다.
즉 최소단위인 삼각형을 언제나 신경쓰고 모델링을 했었었었었었었었어야만 했지요.




그렇지만 새로나온 폴리 모드로 바꾸고 저 가운데 버텍스를 remove 시켜 버린다면,
이렇게 간편하고 자유롭게 몇 각형이건 상관없이 면이 생성되게 되었습니다. 폴리 모드일때는 숨겨진 edge도 없고, 저 상태로 그냥 작업할 수 있어서 엄청나게 편안해 졌던 거지요. 진정한 의미의 "다각형" , 즉 진짜 "폴리곤" 이 만들어 질 수 있게 된 것입니다.



그렇지만 이건 맥스일때 얘기고... 게임 엔진은 맥스가 아닙니다. 게임으로 넘기게 되면 결국 자동적으로 (눈에는 보이지 않아도) edit mesh로 변환되어 넘어가게 되는 거고, 그렇게 되면 저 면은 자동적으로 삼각형으로 변환되어 넘어가게 됩니다.
왜냐면 게임에서는 삼각형 외엔 인식하지 못하니까요.
즉 게임에는 이렇게 들어간다는 말씀.

즉 폴리 구조는 단순히 맥스에서 모델링을 편하게 만든 구조일 뿐, 게임에서는 다시 삼각폴리곤(트라이앵글) 로 변환되어 넘어가기 때문에 게임과는 상관이 없는 수치였다는 겁니다.

그치만 여기서 용어의 혼선이 생기기 시작했다는 거지요.

3D max에서는 폴리 구조를 만들면서 용어를 재정의 해버렸습니다. 즉 진정한 '다각형' 구조의 조작이 가능해 졌으므로 '다각형' 의 의미인 '폴리'를 여기다 써버린 것이지요. (사전적으로는 정확하지요 ) 그리고 이러한 '폴리(다각형)' 들을 계산해서 보여주면 게임에서는 혼선이 있을까봐 삼각형으로 계산한 '삼각폴리곤 (트라이앵글)' 을 따로 표시할 수 있게 해 주었다는 것입니다.

< 면은 34개지만, 삼각형으로 환산하면 64개가 되어 버립니다. 저 64개가 이전까지 부르던 '폴리곤'>




즉 위에서 보는 Polys 는, 그냥 다각형들, 즉 삼각형이 아닌, 순수하게 하나씩 있는 면들 - 아래의 바닥도 폴리곤 하나 - 라고 계산한 것입니다.
예전에 알고 있었던 "폴리" 나 "폴리곤" 이란 말은 "삼각형" 이란 말이었는데, 지금은 그냥 '면이 몇 개' 라는 의미가 되었던 거지요.
그래서 지금은 [폴리 모드에서 폴리곤 수치]를 보면 절대로 안됩니다. 폴리 모드라면 Tris 로 표시되는 "트라이앵글" 이 순수한 옛날의 삼각형 개수를 의미하게 되는 거지요. 즉 여기서는 Tris 개수를 봐야 진짜 게임에 들어가는 면수가 됩니다.

당연히 프로그래머들은 맥스를 안쓰니까, 폴리 모드에서 '폴리곤 5천개예요' 라고 하면 아직도 '삼각형이 5천개' 인줄 압니다.
사실은 '삼각형으로 하면 거의 1만개예요' 라는 의미인데 말입니다.

이건 에디트 폴리 모드를 에디트 매쉬로 바꿔보면 명확해집니다.

메쉬로 바꾸면 ... 메쉬는 모든 면이 삼각형이므로 ...
Polys 와 Tris의 숫자가 똑같아지는 것이지요. 당연하죠. 엣지가 숨어있을뿐, 모두 삼각형이니까.



이런 얘기는 그런데 프로그래머는 모릅니다. 프로그래머는 여전히 버텍스에 인덱스버퍼 붙여서, 트라이앵글 스트립으로 빠르게 삼각형을 그릴 생각만 하지, 폴리곤이 한번에 4각 5각 6각으로 처리된다고 상상을 하지 못하지요.
그래서 혼선들이 가끔 생깁니다. "프로그래머는 폴리 개념을 모릅니다"
아니 뭐 알면 말고...



그러니 가급적이면 용어는 통일해 주는 것이 좋습니다. 게임에서는 삼각형만이 고유의 처리단위이므로, "폴리곤" 이라고 한다면 "삼각폴리곤" = 트라이앵글 이라고 말하기로 말이지요. 즉 그래픽 디자이너도 폴리 모드가 정말 편하고 좋지만, 일부러라도 Tris 숫자를 '폴리곤' 이라고 부르는 것이 혼선이 적게 됩니다. 여기서의 의미는 "메쉬 상태로 바뀌었을때의 폴리곤" 이라는 의미가 되겠군요. 

뭐 , 나중에 좀 더 좋은 용어나 정의가 나온다면 바꾸면 되는 거구요.

결론 : 폴리곤이란 '삼각 폴리곤' 을 의미하는 말로 통일.
맥스의 폴리 모드(Poly Mode)에서는 "Tris" 를 "(메쉬상태에서의)폴리곤"숫자 라고 불러야 합니다.
우리 모두 용어를 통일해서 프로그래머들과 혼동이 없게 하도록 합시다.





혹시나 모르는 사람 있으면 비웃어줍시다.

덧글

  • 베로 2010/10/18 18:50 #

    모두가 행복해 질 수는 없어!(?)
  • 김윤정 2010/10/18 19:04 #

    햄볶할 수 없어(!)
  • 랄마린 2010/10/18 18:52 #

    그래픽카드가 지원하는건지는 모르겠지만, 세가 새턴이 사각형 폴리곤을 사용했습니다. 기본단위가 사각형인 괴이한 기계...
  • 김윤정 2010/10/18 19:03 #

    와우 역시. 블로그에 적으면 이렇게 소중한 정보를 주시는 분이 계셔서 좋아요. ㅎ
    어쨌건 지금은 없는 거군요 ;ㅅ;
  • toRoad™ 2010/10/18 19:20 #

    햄볶할 수 없군요. ㅇ_ㅇ

    4각형 폴리곤 시도 한다는 이야기는 들었었는데 뭔가 나왔나 보군요.
  • 알바선생 2010/10/18 22:02 #

    그래픽을 배우는 학생들끼리도 서로의 작업물을 비교할 때, 저 개념이 부족해서인지.. 실제로는 엄청난 하이폴리곤인데. 자기는 미들폴리이하'라고 알고있는 학생들이 많아요. (다 제각각 ^^)
  • 김윤정 2010/10/18 22:03 #

    그 기준은 프로젝트마다 다 다르니..
  • 아잉까꿍둥이 2010/10/19 23:05 #

    아주 기초적으로 점이 선이되고 선이 면이 되는것인데...
    면(Face or Triangle)의 수가 많다. 라고 하는게 바른 표현이고 폴리곤이 많다는 잘못된 표현이죠.
    면(Face or Triangle)이라고 불리던게... 부르기 편한데로 불려져서 폴리곤이 된듯 하네요.
    사람들이 자주 사용하는 단어 중에 "다르다'와 "틀리다"도 엄연히 다른데... 틀리다는 표현을 많이 하는것과 같은 것 같네요. ^^
  • 김윤정 2010/10/20 04:23 #

    뭐 그래픽 카드 회사에서도 폴리곤이라고 쓴거니까요. 이미 논문들에서도 통용되고 있고... 이미 폴리곤이란 말이 면이나 트라이엥글과 같은 의미로 공식적으로 통용된다는 점에서는 별 불만은 없습니다 ^^ 사실 삼각 폴리곤이란 말이면 맞기도 하고...
  • 왕풍뎅이 2010/10/29 11:23 #

    종종 mesh가 뭔지도 모르는 아그들도 있다능
  • 김윤정 2010/10/30 19:56 #

    요즘엔 배울게 많아서 기초를 넘어가는 경우가 많으니까
※ 로그인 사용자만 덧글을 남길 수 있습니다.


MyADD

<script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>