
이미지 출처: Microsoft
오늘날의 게임 그래픽이 어떻게 보였을지는 2000년에 Microsoft가 가져온 조용하지만 혁신적인 변화가 없었다면 상상하기 어렵습니다. 정확히 25년 전, 이 회사는 DirectX 8을 선보였습니다. 이 출시에는 큰 관심도, 세대를 정의하는 기술 데모도 없었지만, GPU가 그래픽을 렌더링하는 방식을 영원히 바꿔놓을 하나의 주요 혁신 — 프로그래머블 셰이더 — 를 담고 있었습니다.
DirectX 8 이전에는 그래픽 카드는 고정 기능 파이프라인 방식으로 작동했는데, 이는 거의 모든 것이 미리 정의되어 실리콘 자체에 고정되어 있다는 뜻입니다. 조명 방정식, 텍스처 블렌딩, 변환—all of that은 GPU가 제공하는 기능에 의존했습니다. 예를 들어, 실시간 반사 대신에 환경 맵이 사용된 이유는 GPU가 이를 동적으로 계산할 수 없었기 때문입니다. 사용자는 유연하지 않은 하드웨어의 논리에 묶여 있었습니다.
이를 콘솔의 조절 노브를 만지는 것으로 생각해보세요. 매개변수를 약간 조정할 수는 있지만, 만약 그 노브 자체를 바꾸고 싶다면 어떻게 될까요? 그때 등장한 것이 바로 DirectX 8입니다.
DirectX 8의 프로그래머블 셰이더 Microsoft는 DirectX에 Shader Model 1.0을 추가했으며, 이를 통해 개발자들은 각 버텍스를 조작할 수 있는 Vertex Shader 1.0과 각 픽셀의 최종 색을 제어할 수 있는 Pixel Shader 1.0을 사용할 수 있었습니다. 이전에는 이런 기능에 접근할 수 없었지만, DirectX 8은 게임 개발자에게 GPU가 특정 방식으로 렌더링하도록 프로그래밍할 수 있는 코드를 작성할 권한을 부여했습니다.
개발자들은 예를 들어 조명의 수학적 원리를 정의하거나, 소재의 특성, 스펙큘러 하이라이트, (기초적인) 테셀레이션 등을 처음으로 제어할 수 있게 되었습니다. 이는 GPU가 기본적으로 제공하는 기능을 단순히 받아들이는 것이 아니라 GPU가 할 수 있는 모든 것을 활용하는 방식이었습니다. 이는 실리콘을 잠겨 있는 기계에서 실제로 프로그래밍 가능한 프로세서로 바꾸어 놓았습니다.
DirectX 8이 제공한 가능성에 기대어 Half-Life 2 같은 게임들이 그 시대 기준으로 혁신적인 그래픽을 구현하며 등장했습니다. 이러한 게임들은 창작이라는 개념을 기반으로 개발자에게 (그 당시에는 작더라도) 실시간 그림자, 굴절 및 물 셰이더, 포스트 프로세싱 효과 등 다양한 요소를 구축할 수 있는 자율성을 부여했습니다. 모두 개발자가 GPU에게 계산 방식을 지시하는 커스텀 코드를 작성할 수 있게 되었기 때문입니다.
각 오브젝트와 빛이 어떻게 상호작용할지는 창작자의 몫이었고, 이는 오늘날 기준에서는 원시적으로 보일 수도 있습니다. 2025년에도 효율성을 위해 글로벌 일루미네이션처럼 일부는 사전 계산되지만, 다른 일부는 실시간으로 작동합니다. 그리고 양쪽이 어떻게 상호작용해 자연스럽게 통합될지 결정하는 것은 셰이더이며, 이를 통해 “더 나은 그래픽”이 만들어집니다.

이미지 출처: Tom's Hardware
DirectX 8의 출시 시기는 Nvidia의 GeForce 3 출시와 맞물렸으며, 이 GPU는 DX8의 셰이더 모델을 실행하기 위한 셰이더 실행 유닛과 같은 하드웨어 블록을 추가했습니다. 20년이 넘은 당시의 GPU 최초 보도에서 우리는 픽셀 셰이더와 버텍스 셰이더의 추가를 가장 큰 두 가지 개선 사항으로 꼽았으며, 그것이 가져올 무한한 가능성을 언급했습니다 — 지금 돌아보면 더욱 진실된 평가였습니다.
1년 후, ATI(AMD)는 더욱 강력한 DX9급 하드웨어로 DX8의 유산을 이어받으며 따라잡았습니다. 당시 출시된 오리지널 Xbox 역시 DirectX 8 GPU를 탑재했으며, 개발자 커뮤니티에서는 진정한 픽셀 단위 조명 기술에 대한 큰 기대가 있었습니다. Morrowind와 Splinter Cell 같은 게임들은 이 기술을 초기부터 채택했으며, 이후 Unreal Engine 2를 통해 더욱 널리 보급되었습니다.
전반적으로 DirectX 8은 폭발적인 업데이트는 아니었지만, 현대 렌더링 방식 전체를 완전히 바꿔놓았습니다. 우리가 지금 사용하는 모든 기기 — 휴대폰부터 콘솔, 컴퓨터까지 — 는 DX8이 제시한 ‘제어’라는 근본적인 원리를 적용하지 않았다면 지금과 같은 방식으로 작동하지 않았을 것입니다. 소프트웨어를 만드는 사람들이 원하는 방식대로 하드웨어를 프로그래밍하도록 허용한 것이, 오늘날 우리가 당연하게 여기는 그래픽 혁신들로 이어졌습니다. |