아름다운 가상, 그 끝없는 도전
왜 그런것일까? 사람들은 시대와 신분을 막론하고 환상을 꿈꾼다. 지옥이나 천당과 같은 사후세계, 엘프와 드워프가 나오는 북유럽 신화의 세계, 우주 저편에서 벌어지는 별들의 전쟁. 추상적인 배열로 가득찬 음악의 세계. 지금 여기에 있는 것이 아닌, 현실 저편의 것에 대한 상상력은 인간이 아마 태초부터 갖고 있었을 예술 활동의 원동력이 아닐까. 그래서 어떤 이는 예술을 아름다운 가상이라고 했다.

시각적 환상에 대한 표현욕구는 회화, 조각, 건축 등의 영역에서 드러났다. 현대에 가까워지면서 그 중 회화의 비중이 커져가는데, 건축은 지나치게 추상적이고, 조각은 재현의 충실성에서 벗어나기 어려운 반면, 회화는 과감한 상상력을 섬세한 디테일로 담아낼 수 있었기 때문이다.
회화 기법은 오래 전 완성되어 500년 전에도 이미 생동감이 넘치는 표현을 할 수 있었다. 현대의 화가가 아무리 발달된 화법을 사용한들 미켈란젤로보다 특별히 더 생기있는 그림을 그리기는 힘들 것이다.

기술이 발달함에 따라, 사람들은 움직이는 그림을 그릴 수 있게 되었다. 움직이는 그림은 초당 십수장의 그림을 빠르게 넘겨야 하므로, 그림을 그리는 데 드는 수고가 이만저만이 아니다. 그래서 작업의 효율성을 위해, 움직이는 그림을 그릴 때에는 디테일을 어느정도 희생하는 화법을 택해야 했다.

이 기법으로 만들어진 그림들도 충분히 매력적이긴 했지만, 사람들은 더 다양한 표현을 원했다. 부드러운 조명이 드리운 피부, 자연스레 흩날리는 머릿결이나, 뭉게뭉게 피어나는 연기와 같은 생생한 효과를 위해 어마어마한 노력을 들여 그림을 그리는 대신, 사람들은 컴퓨터를 부리기 시작했다. 사람이 컴퓨터에 어떠한 방식으로 그림을 표현하고 싶은지 지시를 내려놓으면, 컴퓨터가 실제로 색칠하는 일을 담당한다. 충직하지만 융통성없는 하인인 컴퓨터에게 현명한 지시를 내리는 법을 고안하는 것은 만만치 않은 일이지만, 기법을 도입한지 불과 20년만에 컴퓨터 없이 영화나 애니메이션을 만드는 것은 생각하기 힘든 시대가 되었다. 그리고 그 환상의 효과는 매우 강력해서, 현실과 대등한 디테일을 지닌 이미지를 연출하기에 이르렀다. 작업의 효율성을 높이는 마무리 과정만 완료한다면, 시각표현 기법의 역사는 끝나는 것일까?

1992년, 울펜슈타인 3D라는 게임과 함께 새로운 시대가 왔다. 투박하긴 하지만, 이것은 지금까지 구경만 해왔던 시각적 가상의 표현 기법과 근본적으로 다른 방법이었다. 이 게임은 가상으로 표현되는 영상세계에 사건이 개입되도록 만들어져 있다. 누군가가 입력을 가하게 되면 즉각적으로 영상이 반응한다. 사건이 개입될 수 있다는 것은, 인터넷이 연결되고, 만남과 이별을 하고, 정치를 하고, 나들이를 할 수 있다는 것을 뜻한다. 다시 말해, 인간이 스스로 창조한 세계의 주민이 될 수 있다는 뜻이다.
그러나 거창한 수사와는 달리, 아직 실시간 그래픽이 표현할 수 있는 것은 별로 없다고 해도 과언이 아니다. 표현력이 부족하다는 것은 오프라인 렌더러가 수십 분에 걸쳐 여유있게 그리는 그림을 실시간 렌더러는 수십 밀리초에 그려야 한다는 시간상의 불리함 이상의 것이다. 영화에서는 모든 것을 계획대로 준비해 놓는다. 그러나 실시간에서는 무슨 일이 일어날지 모르고, 모든 상황에서 자연스럽게 반응해야 한다. 이것은 문서편집기로 극본을 열람하는 것과, 실시간 자연어처리 에이전트와 대화하는 것의 차이에 맞먹는다. 시간이 흘러서 현재 영화에 쓰이는 기법을 모두 실시간으로 구현한다고 하더라도, 사람들은 몇 분 돌려보고는 금방 생생함이 부족하다고 느낄 것이다.
반대로 말하면, 실시간 컴퓨터 그래픽스에는 어마어마한 발전가능성이 내재해 있다는 말도 된다. 지난 10년간 성장해 온 실시간 기술의 흐름을 상기해 본다면, 앞으로의 10년의 변화 역시 매우 혁신적일 것임을 예감할 수 있을 것이다. 10년이면 강산이 변한다고는 하지만, 그리 먼 미래는 아니다.
태동하는 실시간 CG, 변화의 문턱에서

CPU와 GPU의 성능이 향상됨에 따라 실시간 그래픽스 응용프로그램에서 텍스처가 입혀진 삼각형을 렌더링하는 것은 더이상 도전적인 문제가 되지 않는다. 이제 오브젝트의 삼각형 수를 늘리는 것만으로는 눈이 높아진 사용자의 기대에 부응하는 매력적인 실시간 3차원 애니메이션을 연출할 수 없게 되었다. 이를 위해서는 캐릭터 애니메이션, 물리 시뮬레이션, 고급 렌더링 등 더 넓은 분야의 CG기술들이 응용되어야 하며, 이것은 그래픽스 개발자가 더 많은 지식을 익혀야 함을 의미한다. 변화는 우리 앞에 놓여 있다.
EveryCG는 변화를 기회로 삼을 CG개발자를 독자로 한다. 컴퓨터그래픽스 분야에서 소개된 기술들 중 응용가능성이 높지만 국내에 널리 알려지지 않은 기술들을 소개한다. 범위를 제한하지는 않지만, 게임과 같은 실시간 그래픽스 응용프로그램과 관련있는 기술을 위주로 소개한다. 새로운 기술을 제안하는 논문들은 기존 기술에 익숙한 독자들을 대상으로 하므로 독해에 많은 배경지식이 필요하다. EveryCG는 배경지식이 부족한 독자들도 기술의 요점을 가능한한 쉽게 이해하고, 원문을 읽는 데에 길잡이가 되는 것을 목표로 한다.
그렇지만 설명의 편의상 일정한 수준의 배경지식을 갖춘 독자를 가정할 것이다. DirectX나 OpenGL등의 그래픽스 라이브러리는 다뤄본 경험이 있어야 한다. 물론 이에 수반하는 쉐이딩과 프로젝션 등의 그래픽스 기초개념을 이해하고 있는 것도 필수이다. 고등학교 자연계열 수준의 수학 지식은 이 사이트에서 요구하는 최소한의 것이다. 다변수미적분, 선형대수, 수치해석 등의 학부 기초과정에 해당하는 수학은 되도록 풀어서 설명할 것이지만, 결국 그래픽스 알고리즘을 이해하기 위해서는 알아야 하는 내용들이므로, 관련 서적이나 인터넷의 자료를 참고하여 익혀야 한다.
여기 컴퓨터를 통해 새로운 세계를 창조하고 싶은 소박한 꿈을 안고 노력하는 이들과 연대하고 싶은 희망을 담아 이 사이트를 연다.
