유타 주전자

1920px-Utah_teapot_simple_2.png
Utah teapot 또는 Newell teapot 이라고 부른다.

1 개요

3D 그래픽을 공부하는 사람이라면 반드시 봤을 그 주전자[1]. 한마디로 3D 그래픽스 계의 Hello, world! 포지션이라 할 수 있다. 특히 3Ds Max 를 쓰는 사람에게 더더욱 친숙한 모델.

이름의 유래는 이 모델을 만든 인물의 이름인 컴퓨터 그래픽스 연구자인 마틴 뉴웰(Martin Newell) 과 그가 소속되어 있던 유타 대학교에서 따온 것이다.

2 역사

1975년, 뉴웰은 자기 작업에 쓸 간단하며, 수식으로 구현 할 수 있는 친숙한 물건의 모델이 필요했다. 마땅히 쓸만한 모델을 갖고 있지 않은터라 어떤 모델을 새로 만드는게 좋을까 고민하던 뉴웰. 마침 함께 티타임을 갖고 있던 그의 아내 산드라 뉴웰이 '그럼 이 찻주전자를 모델링 하는게 어떰?' 하고 제안을 한다.
Melitta_teapot.png 당시 마크 뉴웰이 참고했던 실제 주전자. 지금은 캘리포니아의 컴퓨터 역사 박물관이 소장하고 있다.

Melitta라는 회사에서 1974년 제조한 이 문제의 찻주전자는 부부가 솔트레이크 시티의 한 백화점에서 구입 한 물건이었다.

l011-newelldrawing.png 뉴웰이 모델링을 위해 모눈종이에 그린 주전자.

뉴웰은 곧바로 모눈종이와 연필을 가지고 와서 찻잔의 모습을 눈대중으로 수치화 시켰고, 연구실로 돌아가 Tektronix라는 초창기 그래픽 터미널을 이용해 일일이 손으로 베지어 값을 입력하며 주전자를 완성시켰다.

이런 기계에 일일이 수치를 입력해서 모델링을 하는것이다(...) 지금은 상상도 못할 일. 보면 알겠지만, 와이어프레임으로 매우 간단한 그림을 뿌리는데도 상당히 오랜 시간이 걸린다. 특히 GUI 가 아닌 CUI 로 해서 더 힘들다.

잘 알려지지 않았지만, 뉴웰은 이 때 찻주전자를 만들면서 찻잔, 컵과 컵받침, 스푼까지 포함한 티세트 하나를 모두 모델링 했다.

사진을 보면 마크 뉴웰이 만든 모델보다 실제 주전자가 위아래로 더 길쭉한 걸 알 수 있다. 이는 당시 마크 뉴웰이 사용하던 컴퓨터 환경에 기인한다. 당시의 컴퓨터는 현대의 LCD 모니터가 아니라, 당시의 TV 와 같은 CRT 모니터 였다. CRT 는 구조상 픽셀에 정사각형이 아니라 세로로 좀더 긴 직사각형 형태였다. 그렇기에 당시의 컴퓨터 역시 이에 맞추어 직사각형 픽셀이라고 가정하고, 그래픽 카드나 그래픽 S/W 가 만들어졌다. 당시 사용하던 프레임 버퍼(Evans and Sutherland 의 프레임 버퍼로 추정.)역시 직사각형 픽셀에 맞추어져 있있고, 당시의 CRT 모니터에 출력하면 상하좌우 비율이 맞는 모습이 나온다. 이런 점을 감안 해 모델링 할 때 일부러 위아래로 찌그러진 모양으로 만든 것이다.

3 왜 이렇게 유명한가?

뉴웰은 곧 이 주전자의 지오메트리(일련의 3차원 좌표들)를 다른 연구원들에게 공개하였고, 다른 연구원들이 너도나도 이 주전자 데이터를 쓰기 시작했다. 당시는 딱히 지금처럼 모델링 자료가 많았던 것도 아니고, 뭔가 하나 만들려 해도 지금과는 차원이 다른 노가다를 해야 하던 시절이었기 때문에, 공짜로 제공된 이 모델이 인기가 있었던 것은 당연했다.
게다가 이 간단한 주전자 모델에 당시 3D 그래픽스 연구자들이 실험에 필요로 했던 수많은 요소들이 담겨져 있다는 사실도 드러나게 되었다. 그 요소들은 대충 다음과 같다.

1. 알아보기 쉬운 모양새. 주전자는 매우 단순하고 친숙한 물건이라 한눈에 알아볼 수 있다.
2. 뻥 뚫려있는 손잡이 등 위상수학적으로 복잡한 형상을 하고 있다. (토폴로지의 개념을 잘 아는분이 수정바람)
3. 손잡이와 주둥이 등의 요소들이 모델에 스스로 그림자를 드리운다(Self shadowing).
4. 볼록하고 오목한 표면 모두를 갖고있다.
5. 용량이 작다. 전설에 의하면 초창기 CG연구가들 중 몇몇은 주전자의 수치 데이터를 모조리 외워버려서(...) 책이나 메모따위 없이 주전자를 만들어 내는게 가능했다고 한다.

여튼 자유롭게 공개 되었다는 점과 이러한 여러 장점들 덕분에 유타 주전자는 3D 그래픽스 전반에 널리널리 퍼져 나가게 되었고, 어느새 업계의 레퍼런스로 자리잡게 되었다.

4 실제 주전자 데이터 세트

이하는 당시 뉴웰이 실제로 수치화 했던 주전자의 데이터이다.

Rim:

{ 102, 103, 104, 105, 4, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15 }
Body:
{ 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27 }
{ 24, 25, 26, 27, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40 }
Lid:
{ 96, 96, 96, 96, 97, 98, 99, 100,
101, 101, 101, 101, 0, 1, 2, 3 }
{ 0, 1, 2, 3, 106, 107, 108, 109,
110, 111, 112, 113, 114, 115, 116, 117 }
Handle:
{ 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, 56 }
{ 53, 54, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64, 28, 65, 66, 67 }
Spout:
{ 68, 69, 70, 71, 72, 73, 74, 75,
76, 77, 78, 79, 80, 81, 82, 83 }
{ 80, 81, 82, 83, 84, 85, 86, 87,
88, 89, 90, 91, 92, 93, 94, 95 }

Vertices:

{ 0.2000, 0.0000, 2.70000 }, { 0.2000, -0.1120, 2.70000 },
{ 0.1120, -0.2000, 2.70000 }, { 0.0000, -0.2000, 2.70000 },
{ 1.3375, 0.0000, 2.53125 }, { 1.3375, -0.7490, 2.53125 },
{ 0.7490, -1.3375, 2.53125 }, { 0.0000, -1.3375, 2.53125 },
{ 1.4375, 0.0000, 2.53125 }, { 1.4375, -0.8050, 2.53125 },
{ 0.8050, -1.4375, 2.53125 }, { 0.0000, -1.4375, 2.53125 },
{ 1.5000, 0.0000, 2.40000 }, { 1.5000, -0.8400, 2.40000 },
{ 0.8400, -1.5000, 2.40000 }, { 0.0000, -1.5000, 2.40000 },
{ 1.7500, 0.0000, 1.87500 }, { 1.7500, -0.9800, 1.87500 },
{ 0.9800, -1.7500, 1.87500 }, { 0.0000, -1.7500, 1.87500 },
{ 2.0000, 0.0000, 1.35000 }, { 2.0000, -1.1200, 1.35000 },
{ 1.1200, -2.0000, 1.35000 }, { 0.0000, -2.0000, 1.35000 },
{ 2.0000, 0.0000, 0.90000 }, { 2.0000, -1.1200, 0.90000 },
{ 1.1200, -2.0000, 0.90000 }, { 0.0000, -2.0000, 0.90000 },
{ -2.0000, 0.0000, 0.90000 }, { 2.0000, 0.0000, 0.45000 },
{ 2.0000, -1.1200, 0.45000 }, { 1.1200, -2.0000, 0.45000 },
{ 0.0000, -2.0000, 0.45000 }, { 1.5000, 0.0000, 0.22500 },
{ 1.5000, -0.8400, 0.22500 }, { 0.8400, -1.5000, 0.22500 },
{ 0.0000, -1.5000, 0.22500 }, { 1.5000, 0.0000, 0.15000 },
{ 1.5000, -0.8400, 0.15000 }, { 0.8400, -1.5000, 0.15000 },
{ 0.0000, -1.5000, 0.15000 }, { -1.6000, 0.0000, 2.02500 },
{ -1.6000, -0.3000, 2.02500 }, { -1.5000, -0.3000, 2.25000 },
{ -1.5000, 0.0000, 2.25000 }, { -2.3000, 0.0000, 2.02500 },
{ -2.3000, -0.3000, 2.02500 }, { -2.5000, -0.3000, 2.25000 },
{ -2.5000, 0.0000, 2.25000 }, { -2.7000, 0.0000, 2.02500 },
{ -2.7000, -0.3000, 2.02500 }, { -3.0000, -0.3000, 2.25000 },
{ -3.0000, 0.0000, 2.25000 }, { -2.7000, 0.0000, 1.80000 },
{ -2.7000, -0.3000, 1.80000 }, { -3.0000, -0.3000, 1.80000 },
{ -3.0000, 0.0000, 1.80000 }, { -2.7000, 0.0000, 1.57500 },
{ -2.7000, -0.3000, 1.57500 }, { -3.0000, -0.3000, 1.35000 },
{ -3.0000, 0.0000, 1.35000 }, { -2.5000, 0.0000, 1.12500 },
{ -2.5000, -0.3000, 1.12500 }, { -2.6500, -0.3000, 0.93750 },
{ -2.6500, 0.0000, 0.93750 }, { -2.0000, -0.3000, 0.90000 },
{ -1.9000, -0.3000, 0.60000 }, { -1.9000, 0.0000, 0.60000 },
{ 1.7000, 0.0000, 1.42500 }, { 1.7000, -0.6600, 1.42500 },
{ 1.7000, -0.6600, 0.60000 }, { 1.7000, 0.0000, 0.60000 },
{ 2.6000, 0.0000, 1.42500 }, { 2.6000, -0.6600, 1.42500 },
{ 3.1000, -0.6600, 0.82500 }, { 3.1000, 0.0000, 0.82500 },
{ 2.3000, 0.0000, 2.10000 }, { 2.3000, -0.2500, 2.10000 },
{ 2.4000, -0.2500, 2.02500 }, { 2.4000, 0.0000, 2.02500 },
{ 2.7000, 0.0000, 2.40000 }, { 2.7000, -0.2500, 2.40000 },
{ 3.3000, -0.2500, 2.40000 }, { 3.3000, 0.0000, 2.40000 },
{ 2.8000, 0.0000, 2.47500 }, { 2.8000, -0.2500, 2.47500 },
{ 3.5250, -0.2500, 2.49375 }, { 3.5250, 0.0000, 2.49375 },
{ 2.9000, 0.0000, 2.47500 }, { 2.9000, -0.1500, 2.47500 },
{ 3.4500, -0.1500, 2.51250 }, { 3.4500, 0.0000, 2.51250 },
{ 2.8000, 0.0000, 2.40000 }, { 2.8000, -0.1500, 2.40000 },
{ 3.2000, -0.1500, 2.40000 }, { 3.2000, 0.0000, 2.40000 },
{ 0.0000, 0.0000, 3.15000 }, { 0.8000, 0.0000, 3.15000 },
{ 0.8000, -0.4500, 3.15000 }, { 0.4500, -0.8000, 3.15000 },
{ 0.0000, -0.8000, 3.15000 }, { 0.0000, 0.0000, 2.85000 },
{ 1.4000, 0.0000, 2.40000 }, { 1.4000, -0.7840, 2.40000 },
{ 0.7840, -1.4000, 2.40000 }, { 0.0000, -1.4000, 2.40000 },
{ 0.4000, 0.0000, 2.55000 }, { 0.4000, -0.2240, 2.55000 },
{ 0.2240, -0.4000, 2.55000 }, { 0.0000, -0.4000, 2.55000 },
{ 1.3000, 0.0000, 2.55000 }, { 1.3000, -0.7280, 2.55000 },
{ 0.7280, -1.3000, 2.55000 }, { 0.0000, -1.3000, 2.55000 },
{ 1.3000, 0.0000, 2.40000 }, { 1.3000, -0.7280, 2.40000 },
{ 0.7280, -1.3000, 2.40000 }, { 0.0000, -1.3000, 2.40000 },

이걸 외워서 치는 사람도 있었다고? ㄷㄷ
이걸 보고 눈치 챈 사람도 있겠지만,??어떻게 눈치채? 오리지널 유타 주전자 모델은 바닥이 없어 뻥 뚫려있다! 뚜껑, 손잡이 등등에 해당하는 데이터는 있지만 바닥에 해당하는 수치는 찾아 볼 수 없다!

5 트리비아

3Ds 맥스의 경우 기본 오브젝트에 포함되어 있어서 마우스로 클릭하고 쭉쭉 그으면 바로 만들 수 있다. 렌더링과 관련 된 튜토리얼 영상을 보면 이 유타 주전자를 가지고 가르치는 경우가 많다. 아마 지금 이순간에도 3D 그래픽스를 배우는 수많은 학생들이 이 주전자에다 일반적인 스테인리스 재질부터 핑크색 호피무늬(...)까지 다양한 재질을 입혀보면서 매핑과 라이팅, 그리고 렌더링을 연습하고 있을 것이다.

마틴 뉴웰은 80년대 후반의 SIGGRAPH 프레젠테이션에서 "여태껏 내가 3D 그래픽스의 세계에 기여를 해 왔지만, '그놈의 망할 찻주전자(That Damned Teapot)' 말고는 후대 사람들이 기억하지 못할 것.' 이라는 우스개 소리를 했다고 한다.

그 역사성과 유명세 덕분에 3D 애니메이션에도 이스터 에그로 자주 출현한다.

tumblr_n0hwqgs7XD1s78fzdo1_250.gif
토이스토리 1편에서 등장.


심슨 가족 시즌7 에피소드6 'Treehouse of Horror VI'에서 호머 심슨이 3차원 세계에 들어가는 장면에서 등장.

6 관련항목

컴퓨터 관련 정보
컴퓨터 그래픽스
스탠포드 토끼 - 유타 주전자와 비슷한 포지션의 모델. 물론 시기상으론 유타 주전자가 훨씬 빠르다.

레나 소더버그 - 이쪽은 2D 그래픽스 계의 유타 주전자 라고 할 수 있지만, 유타 주전자보다 좀 더 빠르다.
  1. 정확히는 찻주전자