Skip to content

GPU와 셰이더 기술의 기초 지식 (5)

[칼럼 핵심 요약]
1년 간격으로 DirectX의 버전 번호가 갱신되고 있던 1990년대 후기와 달리, DirectX 9는 2002년부터 4년간, 거의 Windows XP의 라이프타임의 전체를 차지하게 되었다. 되돌아보면, 2000년 이후 실시간 3D 그래픽의 역사는 실질적으로는 「ATI 대 NVIDIA」의 싸움의 역사였다고 해도 좋을 것이다.

🌐 원문 링크: GPUとシェーダ技術の基礎知識(5) (Mynavi News)
📅 원문 발행일: 2008-02-22 | ✍️ 저자: 西川善司 (니시카와 젠지 / Zenji Nishikawa)

NOTE

💡 현대 그래픽스 관점에서의 발전사 (Modern Retrospective)

  • 고정 기능에서 완전 프로그래머블로: 본문에서 다루는 플랫 셰이딩(Flat Shading)과 초기 고정 파이프라인(Fixed-Function Pipeline) 시대는 이후 DirectX 8/9의 버텍스/픽셀 셰이더 분리 시대를 거쳐, 현재는 컴퓨트 셰이더, 메시 셰이더(Mesh Shader), 레이트레이싱 파이프라인(DXR/Vulkan Ray Tracing)으로 완전히 통합·진화했습니다.
  • 하드웨어 인터페이스의 진화: AGP 및 초기 PCI 인터페이스에서 현대의 PCIe 4.0/5.0 및 고대역 메모리(HBM3 / GDDR6X) 구조로 발전하여, 초당 수 테라바이트급의 메모리 대역폭을 소화하고 있습니다.
  • 소프트웨어 래스터라이저의 부활: 최신 언리얼 엔진 5의 Nanite는 GPU 하드웨어 래스터라이저의 한계를 극복하기 위해, 매우 미세한 마이크로 폴리곤 클러스터에 대해 컴퓨트 셰이더 기반의 고속 소프트웨어 래스터라이저를 병행 사용하는 등 기술이 나선형으로 진보하고 있습니다.

📖 본문 해설

[원문 리드문] > 1년마다 DirectX 버전 번호가 갱신되고 있던 1990년대 후기와 달리 DirectX 9는 2002년부터 4년간 거의 Windows XP의 라이프타임 전체를 차지하게 되었다. 되돌아보면, 2000년 이후 실시간 3D 그래픽의 역사는 실질적으로는 「ATI 대 NVIDIA」의 싸움의 역사였다고 해도 좋을 것이다.

가정용 게임기의 세계에서는, 2005년 말에 마이크로소프트로부터 동사의 2세대째의 게임기인 「Xbox 360」이 발매된다. 그래픽 기술적으로는 DirectX 9세대/SM3.0 대응. 그리고, 자세한 것은 후술하지만, Xbox 360-GPU(Xenos)는 세계 최초의 통합형 셰이더 아키텍쳐를 채용하고 있는 것이 특징이었다. Xbox 360-GPU는 ATI제로, 의외로, 동시기에 ATI가 PC용으로 발표한 Radeon X1800 시리즈와는 설계가 전혀 다른 점이 흥미롭다. 덧붙여서 전출의 VTF 기능은 Radeon X1x00 시리즈 전체로 미대응이지만, Xbox 360-GPU는 대응하고 있었다.

Microsoft "Xbox 360"Microsoft "Xbox 360"

Xbox 360용 명작 타이틀 「기어스 오브 워(Gears of War)」(2006년, Epic Games/Microsoft). 언리얼 엔진 3와 프로그래머블 셰이더 3.0의 정점을 보여준 실시간 3D 렌더링Xbox 360용 명작 타이틀 「기어스 오브 워(Gears of War)」(2006년, Epic Games/Microsoft). 언리얼 엔진 3와 프로그래머블 셰이더 3.0의 정점을 보여준 실시간 3D 렌더링

2006년 말에는, 소니로부터도 신게임기인 「플레이 스테이션 3」(PS3)이 발매된다. PS3의 GPU는 NVIDIA가 설계를 담당해(제조는 소니 외), 「RSX」라고 하는 전용 명칭이 주어졌지만, 기본 설계는 GeForce 7800 시리즈와 거의 동일하고, 그래픽스 기술적으로는 경쟁 Xbox 360과 같은 세대의 DirectX 9세대/SM3.0 대응이었다.

소니 '플레이 스테이션 3'소니 '플레이 스테이션 3'

"MotorStorm"(SCE Europe). 그래픽뿐만 아니라 물리 시뮬레이션의 리얼리티 높이도 기대된 PS3의 게임 MotorStorm TM (C)2006 Sony Computer Entertainment Europe. Published by Sony Computer Entertainment Inc. Developed by Evolution Studios."MotorStorm"(SCE Europe). 그래픽뿐만 아니라 물리 시뮬레이션의 리얼리티 높이도 기대된 PS3의 게임 MotorStorm TM (C)2006 Sony Computer Entertainment Europe. Published by Sony Computer Entertainment Inc. Developed by Evolution Studios.

신세대 게임기 전쟁에서는 'Xbox 360 대 PS3'라는 구도가 있었지만, 사실은 자연스럽게 여기에서도 'ATI 대 NVIDIA'의 싸움이 전개되고 있었던 것이다. 어쨌든, 2대 최신 게임기의 그래픽스는 모두 프로그래머블 셰이더 3.0 아키텍쳐 베이스가 되어, PC도 게임기도 SM3.0 시대에 돌입한 것이 된다.

또한 게임 플랫폼의 또 다른 수컷인 닌텐도는 신세대 게임기로 'wii'를 투입하지만 그래픽 기술적으로는 진화를 거의 포기할 방침을 채택했다.

2007년~프로그래머블 셰이더 4.0과 DirectX 10시대의 시작

1년 간격으로 DirectX의 버전 번호가 갱신되고 있던 1990년대 후기와 달리, DirectX 9는 2002년부터 4년간, 거의 Windows XP의 라이프타임의 전체를 차지하게 되었다. 2006년 후기에는 ATI가 CPU 메이커의 AMD에 인수된다는 사건이 일어나지만, 되돌아 보면, 2000년 이후의 실시간 3D 그래픽스의 역사는, 실질적으로는 「ATI 대 NVIDIA」의 싸움의 역사였다고 해도 좋을 것이다.

2007년, 해가 빨리 빨리 마이크로소프트는 새로운 OS 「Windows Vista」를 발표. 이와 동기적으로 새로운 DirectX인 DirectX 10이 5년 만에 출시된다.

DirectX 10에서는, 프로그래머블 쉐이더의 버젼은 4.0에 대응하게 되었다.

SM4.0에서는 SM3.0에 대한 추가 명령 세트의 확충이 이루어지고 있다. 구체적으로는 정수 연산 명령, 2진 논리 연산 명령 등이 추가되어 보다 CPU적인 범용 프로그래밍을 할 수 있는 기능 강화가 이루어지고 있다. 또, 명령 세트적으로는 버텍스 쉐이더와 픽셀 쉐이더와의 격차가 없어져, 이것을 마이크로소프트는 「커먼 쉐이더」(common:공유형/범용형) 아키텍쳐라고 부르고 있다.

SM3.0과 SM4.0의 비교SM3.0과 SM4.0의 비교

동시 텍스처 액세스수도 SM3.0시의 16에서 SM4.0에서는 128로 확장되고 있으며, 공통 지수항 E를 가지는 새로운 텍스처 포맷 RGBE 형식도 지원되어 실시간(게임)에 적합한 저부하의 HDR 렌더링을 가능하게 하고 있다.

그리고 DirectX 10/SM4.0에 있어서 최대의 주제라고 할 수 있는 것이 제3의 프로그래머블 셰이더 「지오메트리 셰이더」(Geometry Shader)의 신설이다.

지금까지 버텍스 차원을 「지오메트리」라고 부르는 일도 많았기 때문에, 「지오메트리 셰이더」는 「버텍스 쉐이더」와 동의로 들려 버릴 것 같지만, 버텍스 쉐이더와는 다른 것이 된다. 다만, 「취급하는 정보는 버텍스 차원」이라고 하는 점에 있어서는 버텍스 쉐이더와 같다.

지오메트리 셰이더의 역할은 프로그래머블에 버텍스을 증감하는 것. 정확하게는 선분, 폴리곤, 파티클과 같은 프리미티브(Primitive)의 증감까지 할 수 있다.

그리고 버텍스 처리 페이즈에 지오메트리 셰이더가 추가된 것에 호응하는 형태로, 버텍스 셰이더나 지오메트리 셰이더의 출력을 비디오 메모리 측에 다시 쓰는 메모리 출력 기능 「스트림 출력」(Stream Output)의 구조도 신설되고 있다. 이것에 의해, 버텍스 처리 페이즈에 있어서 「버텍스 셰이더→지오메트리 쉐이더→버텍스 쉐이더……」라고 하는 재귀적인 처리가 가능하게 되었다.

지오메트리 쉐이더와 스트림 출력의 조합은, 고도의 3D 모델의 변형 가공을 가능하게 하는 것에 머무르지 않고, GPU를 CPU적인 범용 처리 목적으로 활용하는 GPGPU(General Purpose GPU) 용도에도 유용하다고 되어, 그 폭넓은 응용이 기대되고 있다.

DirectX 9/SM3.0의 렌더링 파이프라인DirectX 9/SM3.0의 렌더링 파이프라인

DirectX 10/SM4.0의 렌더링 파이프라인DirectX 10/SM4.0의 렌더링 파이프라인

(트라이Z 니시카와 젠지)


🔗 연관 지식 베이스 (Wiki)

Based on Zenji Nishikawa's 3D Graphics Maniax series. Translated & Knowledge-Based for Korean Game Developers.