테셀레이션

덤프버전 :

파일:다른 뜻 아이콘.svg
은(는) 여기로 연결됩니다.
연산에 대한 내용은 테트레이션 문서
테트레이션번 문단을
테트레이션# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
참고하십시오.





평면기하학
Plane Geometry


[ 펼치기 · 접기 ]


파일:external/uploads8.wikiart.org/two-birds.jpg
테셀레이션의 활용으로 유명한 화가 M. C. 에셔의 작품.

1. 개요
2. 기하학적 상세
2.1. 정규 테셀레이션
2.2. 반정규 테셀레이션
2.3. k-uniform tilings
2.5. 왕 타일
3. CGI에서의 응용
3.1. 개요
3.2. 테셀레이션이 사용된 게임
4. 여담



1. 개요[편집]


Tessellation, Tiling

기하학 용어.

일정한 형태의 도형들로 평면을 빈틈 없이 채우는 것. 평면작성, 타일링 등으로 불리기도 하며 '쪽매맞춤' 혹은 '쪽매붙임'으로 번역되기도 한다.

같은 모양의 정다각형으로 테셀레이션을 하려면 정삼각형, 정사각형, 정육각형 밖에 불가능하지만 (이 세 개의 정다각형만이 한 각의 크기가 360의 약수이기 때문이다) , 두 가지 이상의 정다각형을 활용해서 다양한 테셀레이션을 할 수 있다.

실생활에서는 목욕탕 타일이나 보도블록을 까는 것에서 쉽게 찾아 볼 수 있을 것이다.

펜로즈 타일링을 발견한 영국의 로저 펜로즈와 네덜란드의 마우리츠 코르넬리스 에셔(Maurits Cornelis Escher)가 테셀레이션으로 유명하다.


2. 기하학적 상세[편집]


현실에서의 타일링은 타일의 모양이 직사각형일 수도 있고, 마름모, 평행사변형, 사다리꼴이더라도 평면을 채우는 것이 가능하다. 임의의 형태의 삼각형은 평면을 채울 수 있다. 임의의 삼각형에 이를 180도 회전한 삼각형을 붙이면 평행사변형이 되며 평행사변형은 평면을 채울 수 있기 때문이다. 또한, 다각형이 아니라 곡선 형태의 비정형 도형으로도 평면을 채우는 것이 가능하다.

이런 경우를 모두 다루기에는 경우가 많기에, 좀더 간단하게 다루기 위해서 기하학에서는 여러 제한 조건 하에서 테셀레이션을 다룬다.

  • 정다각형을 먼저 다룬다.
  • 모든 다각형꼭짓점끼리 만난다.
  • 같은 형태의 다각형은 크기가 같다.
  • 서로 다른 정다각형을 다룰 경우 모든 정다각형의 한 변의 길이가 같다.


2.1. 정규 테셀레이션[편집]


파일:regular_tessellation.jpg
정규 테셀레이션(regular tessellation) 혹은 정타일링이란 평면을 한 종류의 정다각형 타일만 써서 빈틈 없이 채운 것을 말한다. 정다각형을 이용해 평평하게 무한히 이어야하므로 정규 테셀레이션을 이루는 정다각형의 꼭짓점이 만나는 부분이 360도가 되어야 하므로 정규 테셀레이션을 이루는 정다각형은 내각이 360의 약수이어야 한다. 이를 만족하는 도형은 정삼각형, 정사각형, 정육각형뿐이므로 정규 테셀레이션 또한 정삼각타일링, 정사각타일링, 정육각타일링으로 3종이 존재한다. 정규 테셀레이션은 정다면체의 정의에는 부합하나 일반적으로 정다면체로 간주하지 않거나 무시한다.

2.2. 반정규 테셀레이션[편집]


Uniform tiling, 1-uniform tiling, Semiregular tiling.

파일:SemiregularTessellations_600.gif

한 변의 길이가 같은 두가지 이상의 정다각형을 조합하여 평면을 채우는 것을 의미한다. 이중, 임의의 점에서 정다각형의 구성이 동일한 경우를 뜻하며, 총 8가지 경우가 있다.


2.3. k-uniform tilings[편집]


파일:DemiregularTessellations_601.gif
2-uniform tiling (Demiregular tiling)

정다각형을 이용해서 평면을 채울때, 각점에서 정다각형의 구성이 2가지 이상인 경우도 있다. 이것이 몇종류이냐에 따라서 k-uniform tilings 이라고 부른다.

2-uniform tilings 은 총 20가지 종류가 있으며, 3-uniform tilings 은 61가지, 4-uniform tilings 은 151가지가 있다. 참고로 k=6 까지는 완전히 분류가 끝났다.

k=7 일때 1472가지가 있다는 사실은 확인되었으나, 완전히 분류되지는 않았다.

3차원 이상의 테셀레이션(벌집)은 종류가 더 많을 것이며 무궁무진 할것이다. n차원 쌍곡 타일링이나 벌집도 한 점에서의 다포체 조합의 가짓수 종류에 따라서 분류할 수는 있겠다.

위키백과 참조


2.4. 펜로즈 타일[편집]


정다각형이 아닌 타일링 중에서 유명한 것으로 펜로즈 타일이라는 것이 있다.


2.5. 왕 타일[편집]


왕 타일은 상하좌우가 다른 색으로 칠해져있고 타일을 조립할때 반드시 같은 색의 부분이 서로 마주하도록 만들어진 타일이다. 테셀레이션 보다는 수학의 형식 체계에 더 가깝다.

위키백과 참조


2.6. 쌍곡 테셀레이션[편집]


푸앵카레 원반 위에서 정의되는 비유클리드 테셀레이션.
해당 문서 참조.


3. CGI에서의 응용[편집]



3.1. 개요[편집]


파일:attachment/테셀레이션/Tesselation.jpg

이미 오래전부터 있던 기법이었으나 높은 성능의 CPU 혹은 GPU 요구 사양으로 인해 사용되지 못 했고, 2001년 ATI가 발표한 TruForm과 2007년 TeraScale 아키텍처부터 TruForm의 개선판인 하드웨어 테셀레이션[1]을 비롯한 테셀레이터가 PC 그래픽카드에서는 라데온 8500부터, 콘솔 게임기에서는 2005년 Xbox 360부터 탑재되어 존재를 알렸으나 ATI 독자 규격이라서 역시 널리 사용되지 못 했다. 그래도 기본적인 성능이 꾸준히 향상되었기 때문에 MS에서는 2009년 DirectX 11에 들어서 정식으로 채택하기에 이르렀고, 크로노스 그룹에서도 대세에 따라 2010년 OpenGL 4.0부터 정식으로 지원함으로써 널리 알려지기 시작했다.

앞에서도 서술했듯이 과거엔 이것을 구현하는데 GPU만으로는 한계가 있어서 일부는 CPU와 함께 사용했고 그마저도 성능 요구치가 너무 높았기 때문에 아무도 사용하지 않았다. 더 정확히 따지면 테셀레이션은 디스플레이스먼트(변위) 매핑과 동시에 쓰여야 진가가 발휘되는데 디스플레이스먼트 매핑까지 동원해야 하므로 실질적인 요구 사양은 기하급수적으로 더 높았다. 테셀레이션은 단순히 폴리곤의 면적을 잘게 쪼개어 더 많은 버텍스를 갖게 해주는 것일 뿐이고 디스플레이스먼트 매핑은 그 잘게 쪼개인 버텍스의 높낮이를 조절해서 울퉁불퉁한 표면의 굴곡을 만드는 역할이기 때문이다. 위의 그림에서 테셀레이션 ON/OFF의 차이는 단순히 테셀레이션 뿐만이 아닌 디스플레이스먼트 매핑도 ON/OFF 된 것이다.

이름의 유래는 폴리곤을 삼각형으로 분할해 빠짐없이 메우는 특성 때문으로 보인다.

원래 게임 그래픽은 요구 사양에 대한 낮은 진입 장벽을 위해 주로 자잘한 디테일은 생략하고 평면적인 껍데기(메쉬)에다가 색칠(텍스처)을 하는 식으로 구성된다. 이 메쉬를 구성하는 단위는 폴리곤인데 폴리곤은 전부 삼각형 모양이기 때문에 메쉬를 구성하는 폴리곤 숫자가 적으면 자연스레 겉면이 울퉁불퉁해지고 어색해진다. 옛날 3D 게임의 바퀴가 원형이 아닌 육각형으로 구성되어 있는 이유는 폴리곤 숫자가 적기 때문이다.

이는 바위나 자갈 같은 것에서도 마찬가지인데, 사실 바위의 거친 표면이나 자갈 하나하나를 폴리곤으로 구성하려면 굉장히 힘이 들고 사양 또한 무지막지하게 잡아먹는다. 그래서 그래픽 엔지니어들은 자잘한 디테일은 생략하고 평면을 깔아 그 위에 울퉁불퉁하게 보이기 위해 범프매핑이나 노말 매핑, 패럴랙스 매핑, 패럴랙스 오클루젼 매핑[2]# 등의 기법을 이용하여 눈속임을 했었다.

테셀레이션은 이런 눈속임이 아니라 말 그대로 자잘한 것까지 모조리 폴리곤으로 구성하는 기술이다. 이해가 안 된다면 위의 사진을 비교해보자.

디스플레이스먼트 매핑과 마찬가지로 테셀레이션이 적용되면 연산해야할 폴리곤의 숫자가 엄청나게 많아서 처리속도가 느려진다. 그러나 DirectX 11, OpenGL 4 이상을 지원하는 GPU엔 기본적으로 테셀레이션 처리 모듈인 테셀레이터가 포함되어있기 때문에 같은 수의 폴리곤을 가진 모델을 넣는 것보다 그나마 더 효율적이다. 때문에, 그래픽 퀄리티(폴리곤 숫자)를 기준으로 보면 디스플레이스먼트 매핑을 하드웨어 테셀레이션으로 구현하는 게 그나마 성능 위주의 최적화이다. 점진적으로 기존 기술을 대체한 건 괜히 그런 게 아니다.
  • 실제로 ATI에서 TeraScale 발표 초기에 하드웨어 테셀레이션 수준의 디스플레이스먼트 매핑을 기존 기술(패럴랙스 오클루젼 매핑)로 억지로 구현해서 프레임이 박살난 걸 먼저 보여준 후에 하드웨어 테셀레이션을 적용하여 극적인 프레임 향상을 시연한 바 있다.# 2560x1600 해상도에서 자갈 재질의 울퉁불퉁한 바닥은 구현하는데 있어, 패럴랙스 오클루젼 매핑의 초당 72 프레임에 비해 173프레임으로 2.4배 가량 빠른 모습을 보인다. 일반적인 범프맵핑은 같은 조건에서 494 프레임으로 훨씬 빠르지만 입체감이 떨어지는 게 한 눈에 띌 정도로 차이가 난다. 다만 당시 AAA급 기준 기본값이라 할 수 있을 정도의 대세였던 노멀 매핑이 비교에서 빠진 건 아쉬운 점.

테셀레이션과 디스플레이스먼트 매핑같은 고급 매핑을 활용할 자원의 성능이 충분해졌다 하더라도 2010년대 초반까지만 해도 이를 많이 활용하기엔 여전히 버거운 기능이었다. 그러다가 2013년에 AMD에서 개발한 새로운 API인 Mantle을 도입하여 기존의 API로 구현하면서 발생한 오버헤드를 줄이고 콘솔 게임기에서나 활용했던 하드웨어 직접 접근, 이기종 컴퓨팅, 비동기 셰이딩, 개선된 메모리 공유 기능을 통해 성능 효율이 대폭 상승하게 되어 테셀레이션과 고급 매핑의 제약이 줄어들었고 2015년부터 게임사들에게 본격적으로 사용되기 시작했다.

2014년에 MS에서도 Mantle의 특성을 반영하고 대응하기 위해 DirectX 12를 발표하였고, 2015년에 크로노스 그룹에서도 역시 Mantle과 DirectX 12에 대응하기 위해 기존의 OpenGL 네이밍이 아닌 Vulkan이라는 새로운 이름의 API를 발표하였으며, 언리얼 엔진, 유니티 엔진, 크라이엔진, 프로스트바이트 엔진 등의 유명 게임 엔진 쪽에서도 이러한 새로운 API를 실험적으로 도입하여 테셀레이션과 고급 매핑 기능을 많이 활용한 게임이 증가할 것으로 전망되고 있다. 물론, 개발 난이도가 높은 기술 특성상 테크니컬한 부분에 많은 투자를 할 수 있는 AAA 게임 위주가 될 가능성이 높다.


3.2. 테셀레이션이 사용된 게임[편집]




4. 여담[편집]


파일:2015년 9월 고2 수학 20번.png
2015학년도 9월 고2 전국연합학력평가 수학 20번에 테셀레이션이 등장한 바 있다. 정답은 ④이다.

파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-12-22 11:38:58에 나무위키 테셀레이션 문서에서 가져왔습니다.

[1] 2012년 GCN 아키텍처부터는 이를 '지오메트릭 프로세서'라고 명명되었다.[2] 기존 패럴랙스 매핑의 단점을 보완한 매핑이지만 그만큼 연산 요구량이 더 많아지고 리소스도 더 필요하며, 결과적으로 더 비싼 기법이라 자주 사용되지 않는 편이다.