컴퓨터로 표현할 수 있는 수많은 가상 세계에 가장 직관적으로 접근하는 방법은 렌더링이다. 인간의 감각 중 뇌의 성능을 가장 많이 사용하고, 세계를 인지하는 가장 큰 부분이 시각이기에, 인간의 뇌는 시각 처리에 많은 부분을 할애하고 있다. 그러하기에 컴퓨터 그래픽스는 수많은 분야에서 사용되며, 이제는 모든 미디어에 자연스럽게 녹아 들어있다.
수많은 컴퓨터 그래픽스의 연구 결과 중에서 가장 기본이 되는 핵심 이론이 레이트레이싱을 통한 빛 반사의 시뮬레이션이다. 알고리즘의 엄청난 비용에도 최적화와 비용 대비 퀄리티 향상을 위한 끊임없는 연구로 인해, 실시간 렌더링에서도 실물과 상당히 유사한 퀄리티를 보여준다. 특히나 2018년에 발표한 엔비디아의 RTX 발표와 마이크로소프트의 DirectX 12의 DXR 도입은 이제 모든 그래픽스 관계자가 염원하던 시대의 시작을 알리는 효시가 될 것이다.
대학교 학부 시절에는 그래픽스에 관심이 없었기에 이론적인 토대가 별로 없는 상태에서 게임 그래픽스를 통해 귀납적으로 학습하고 있었다. 그러던 중 보게 된GDC와 SIGGRAPH 같은 해외 콘퍼런스의 내용은 심히 흥미로웠다. 그때 지적 갈증을 해결해준 책이 바로 이 책의 초판이었으며, 이를 통해 그래픽스 분야로 유학을 가게 됐기에 이 책은 유학길에 들고 간 유일한 책이었다. 심도 깊은 내용과 풍부한 레퍼런스는 부족했던 기반 지식을 채워주기 충분했고, 고급 실시간 렌더러와 언리얼 엔진의 개발 연구 과정에서의 렌더링 이론 이해에도 매우 큰 도움이 됐다.
2판에서는 전통적인 오프라인 렌더러의 기법뿐만이 아니라, 이를 응용하거나 비슷한 결과를 내는 당시 최신 실시간 렌더러의 기술과 근래의 GPGPU까지 소개돼 있어 최신 기술에 대한 이해도를 높일 수 있었다.
꽤 오랜 시간이 흐른 후에 나온 3판에서는 그동안의 레이트레이싱 기술의 발전과 변화된 기술 기반에 대한 상세한 설명을 더했다. 또한 조금 산발적이던 이론과 기술을 재분류하고 재정리해 2판보다 접근성있는 설명력을 갖췄으므로, 처음 보는 독자에게 좀 더 이해하기 쉬운 구성이 됐다고 믿는다.
이제 영화 제작과 실시간 그래픽 애플리케이션에서 물리 기반 렌더링이 보편적으로 사용되기 시작한 이후에 3판이 나온 만큼, 기존 제작 파이프라인과 물리 기반 렌더링이 도입된 이후의 제작 파이프라인과의 차이와 결과에 대한 예를 통해 이해를 도울 수 있다.
번역 의뢰를 받았을 때 바쁜 일정과 방대한 양으로 인해 주저했지만, 끝까지 진행할 수 있었던 것은 이 책에 대한 나의 존경의 발로일 것이다. 컴퓨터 그래픽스 분야는 여전히 한글 용어가 제대로 확립되지 않았기에 최대한 이해하기 쉽게 풀어보려고 했지만, 미흡한 부분이 많아 아쉬움이 남는다. 그럼에도 이 책을 통해 좀 더 많은 사용자가 핵심 그래픽 이론에 대해 이해할 수 있기를 바란다.
모바일 렌더러에서 최고의 그래픽을 표현하기 위해 엔진과 렌더링 파이프라인을 커스터마이제이션하던 중에 불칸의 발표는 참으로 반가운 소식이었다. 스티브 잡스의 철학으로 인해 항상 유저 인터페이스와 그래픽에 심혈을 기울이던 애플과는 달리, 오픈 플랫폼인 안드로이드 진영의 경우 통일되지 않은 그래픽 하드웨어로 인한 많은 희생이 있기 때문이다. 애플의 경우 독자 API인 메탈을 통해서 상당한 성능 향상을 이루었지만, OpenGL ES의 경우 너무 오래되어 새로운 모바일 그래픽에 맞지 않는 많은 제약을 가져 통일되지 않은 extension에 의존해야만 했다.
비단 모바일 플랫폼만이 아니라 PC에서도 DirectX의 하드웨어 발전에 맞춘 빠른 지원과 달리 OpenGL의 제약과 시대를 따라가지 못했던 부분으로 인해 구식 API화되고 있었다. 그래픽 응용 프로그램이나 대학교에서는 항상 OpenGL을 배우게 되지만, 사실상 업계에서 표준은 항상 DirectX였으며, 언리얼 엔진 같은 업계 최고의 엔진 역시 렌더링 API는 DirectX를 기본으로 간주하였고, nVidia나 AMD같은 하드웨어 벤더들 역시 OpenGL에 대한 지원이 미흡하였다.
그러던 와중 크로노스 그룹의 불칸 발표는 아주 반가운 소식이었다. 파편화된 플랫폼 사이에서 표준이 되는 공통 API의 도입은 개발자에게 엄청난 편의를 제공하며, 플랫폼 별로 맞춰야 하는 많은 고민들을 해결해줄 수 있다. 특히 게임 같은 소프트웨어의 경우 원 소스 멀티 유즈가 대세며, 대부분의 게임 엔진들이 멀티 플랫폼을 지원하는 것을 강점으로 손꼽고 있다. 이를 통해 불칸 같이 PC와 모바일을 아우르는 공통 API의 등장은 업계 전반에 활력을 불어넣게 될 것이며, 앞으로 더 높은 그래픽 퀄리티의 애플리케이션 개발에 든든한 아군이 되어줄 것이다.
이 책은 불칸의 모체였던 AMD의 독자 그래픽 API 맨틀의 개발자로서 불칸의 개발에 깊이 참여한 수석 개발자가 직접 작성한 것으로, 불칸을 이해하기에 이보다 좋은 교재는 없을 것이라고 생각해 추천하는 의미에서 바쁜 일정 중에 번역하였다. 이 책이 많은 다른 개발자들이 불칸을 이해하는 데 도움이 되길 바란다.