• 25년 전 오늘, 마이크로소프트는 DirectX 8을 출시하며 PC 그래픽을 영원히 변화시켰다 — 프로그래밍 가능한 셰이더가 현대 GPU 렌더링의 미래를 위한 토대를 어떻게 마련했는가

    역사적인 전환점을 되돌아보며.

    article image

    2000년, Microsoft가 가져온 조용했지만 변혁적인 변화가 없었다면 오늘날의 게임들이 어떤 모습이었을지 상상하기 어렵습니다. 25년 전, 그 회사는 DirectX 8을 발표했습니다. 이 출시는 거대한 홍보나 세대를 상징할 만한 기술 데모를 동반하지는 않았지만, '프로그래밍 가능한 셰이더(programmable shaders)'라는 하나의 거대한 돌파구를 품고 왔으며, 이는 GPU가 그래픽을 렌더링하는 방식을 영원히 혁신할 것이었습니다.

    DirectX 8 이전에 그래픽 카드는 '고정 함수 파이프라인(fixed-function pipeline)' 방식이었습니다. 즉, 거의 모든 기능이 하드웨어 칩 자체에 미리 정의되어 내장되어 있었기 때문에, 조명 방정식(lighting equations), 텍스처 블렌딩(texture blending), 변환(transformations) 등 모든 것이 GPU가 지원하는 범위 내에 갇혀 있었습니다. 예를 들어, 실시간 반사(real-time reflections)를 구현하기 위해서는 GPU 자체가 동적으로 계산할 수 없어 환경 맵(environment maps)을 대체재로 사용할 수밖에 없었습니다. 사용자는 그저 유연성이 매우 떨어지는 하드웨어의 논리에 갇혀 있었습니다.

    이를 콘솔 장치의 다이얼(노브)을 조정하는 것에 비유할 수 있습니다. 매개변수(파라미터)는 약간씩 수정할 수 있지만, 만약 그 다이얼 자체를 완전히 새로 디자인하고 싶다면 어떨까요? 여기서 DirectX 8이 등장했습니다.

    article image

    DirectX 8의 프로그램 가능한 셰이더

    Microsoft는 DirectX에 'Shader Model 1.0'을 추가했는데, 여기에는 개발자가 모든 정점(vertex)을 조작할 수 있는 'Vertex Shader 1.0'과, 모든 픽셀의 최종 색상을 제어할 수 있는 'Pixel Shader 1.0'이 포함되었습니다. 이전에는 이러한 기능에 접근하기가 매우 어려웠지만, DirectX 8은 게임 개발자들에게 직접적인 제어권을 부여하여, GPU가 특정 방식으로 렌더링하도록 코드를 직접 작성할 수 있게 했습니다.

    개발자들은 이제 조명에 사용되는 수학적 구조를 직접 정의하거나, 재질의 움직임, 반사 하이라이트(specular highlights), (기본) 테셀레이션(tessellation) 등을 사상 최초로 제어할 수 있게 되었습니다. 이는 더 이상 GPU가 기본으로 제공하는 기능을 수동적으로 받아들이는 문제가 아니라, GPU가 무엇을 할 수 있는지 그 가능성 자체가 핵심이 된 것입니다. 이로써 칩은 단순한 고정 기계가 아닌, 이름 그대로 실제로 프로그래밍 가능한 프로세서로 변모했습니다.

    DirectX 8이 열어준 가능성에 힘입어, 《하프라이프 2(Half-Life 2)》 같은 게임들은 당시로서는 혁신적인 그래픽을 선보였습니다. 이 게임들은 개발자들에게 실시간 그림자, 굴절 및 물 셰이더, 후처리 효과(post-processing effects) 등, 마치 창작자가 직접 빛과 오브젝트의 상호작용을 설계할 수 있는 자율성(비록 당시는 미미할지라도)을 부여했습니다. 이는 모두 GPU에게 "무엇을 어떻게 계산해야 하는지"를 명령하는 커스텀 코드(custom code)를 작성할 수 있게 되었기 때문이었습니다.

    article image

    이는 창작자가 빛이 각 물체와 어떻게 상호작용하는지를 직접 구현해야 하는 문제였는데, 이는 오늘날의 관점에서는 다소 원시적으로 보일 수 있습니다. 심지어 2025년 현재에도 효율성을 위해 전역 조명(global illumination)과 같은 일부는 사전에 구워지고(pre-baked) 있지만, 다른 요소들은 여전히 실시간으로 작동합니다. 그리고 이 둘을 매끄럽게 병합하여 사용자에게 "더 나은 그래픽"을 제공하는 방식을 결정하는 것이 바로 셰이더입니다.

    DirectX 8의 출시는 엔비디아(Nvidia)의 GeForce 3 출시 시기와 맞물렸습니다. 이 시기에 컴퓨팅 파워의 혁신이 일어나면서, 하드웨어 자체가 소프트웨어의 요구에 맞춰 진화하는 계기를 만들었습니다.

    결국, 이 모든 발전의 핵심은 개발자에게 물리적인 제약을 넘어서는 '제어권'을 넘겨주었다는 점에 있습니다. 이 제어권이 바로 오늘날 우리가 누리는 놀라운 시각적 경험의 기반이 되었습니다.

    [출처:] https://www.tomshardware.com/pc-components/gpus/25-years-ago-today-microsoft-released-directx-8-and-changed-pc-graphics-forever-how-programmable-shaders-laid-the-groundwork-for-the-future-of-modern-gpu-rendering