Appearance
GPU와 셰이더 기술의 기초 지식 (2)
[칼럼 핵심 요약]
지난번에 이어 3D 그래픽 기술의 진화의 역사를 되돌아보고 싶다. 그런데, 1990년대 후기, PC 업계가 한마디가 되어 강화에 임한 것에 의해, PC 그래픽스는 급격한 진화를 이룬다.🌐 원문 링크: GPUとシェーダ技術の基礎知識(2) (Mynavi News)
📅 원문 발행일: 2008-02-01 | ✍️ 저자: 西川善司 (니시카와 젠지 / 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 하드웨어 래스터라이저의 한계를 극복하기 위해, 매우 미세한 마이크로 폴리곤 클러스터에 대해 컴퓨트 셰이더 기반의 고속 소프트웨어 래스터라이저를 병행 사용하는 등 기술이 나선형으로 진보하고 있습니다.
📖 본문 해설
[원문 리드문] > 지난번에 이어 3D 그래픽 기술의 진화의 역사를 되돌아보고 싶다. 그런데, 1990년대 후기, PC 업계가 한마디가 되어 강화에 임한 것에 의해, PC 그래픽스는 급격한 진화를 이룬다.
1990년대 후기~DirectX의 급속 진화의 역사
1990년대 후기, PC업계가 한마디가 되어 강화에 임한 것으로, PC 그래픽스는 급격한 진화를 이룬다.
1998년에는 당시까지 발표된 다양한 실시간 3D 그래픽 기능을 도입한 DirectX 6이 발표되고, 다음 1999년에는 이후 PC 그래픽의 진화 방향성을 결정한 DirectX 7도 발표된다.
DirectX 6 이전까지는, 3D 그래픽스 처리 하드웨어는 폴리곤과 픽셀의 대응을 계산하거나(래스터라이즈 처리), 이미지 텍스처를 붙이는 처리를 하거나……, 라고 하는 픽셀 단위의 처리만을 담당하고 있었다.
DirectX 7에서는, 지금까지 CPU가 담당하고 있던 버텍스 단위(폴리곤 단위)의 좌표 변환 처리나, 광원 처리를 3D 그래픽스 처리 하드웨어가 담당할 수 있는 구조를 실장한 것이다. 그래픽 "하드웨어"에서 "버텍스 단위의 좌표 변환(Transform)과 광원 처리(Lighting)를 처리할 수 있는" 구조를 특히 요즘은 "하드웨어 T&L"(T:Transform L:Lighting)이라고 부르면서 말했다.
덧붙여 이 타이밍에서 PC업계는 「그래픽스 처리 전반을 담당하는 프로세서」의 뜻을 갖고, 이러한 하드웨어(프로세서)를 GPU(Graphics Processing Unit)라고 부르기 시작해, 후에 정착했다. 여담이지만, GPU라는 명칭은 물론, 음운과 자면을 CPU(Central Processing Unit)에 비유한 것이다. DirectX 7 대응 GPU로는 NVIDIA의 GeForce 256, ATI의 초대 RADEON 등이 등장하고 있다.
NVIDIA GeForce 256을 탑재한 그래픽 카드
「자이언츠: 시티즌 카부토(GIANTS: CITIZEN KABUTO)」(2000년, Planet Moon Studios). DirectX 7 하드웨어 T&L 시대를 대표하며 PC 실시간 3D 그래픽의 표현력이 콘솔을 압도하기 시작한 명작
실시간 3D 그래픽 기술은 그동안 가정용 게임기 쪽이 선행했던 느낌이 강했지만, DirectX 7시대에 돌입한 이후에는 완전히 PC가 역전된 구도가 된다. 이것은, 가정용 게임기가, 보급이 최우선되는 그 전략적인 제약도 있어 약 5년 사이클로 밖에 하드웨어의 사양 변경을 할 수 있는 것에 대해, PC는 최신 기술을 매년 흡수해 진화할 수 있었기 때문. 또한 당시 게임기의 점유율 싸움이 3사 정도의 메이커간에 싸워지고 있었던 것에 대해, PC 그래픽스는 10사 가까운 메이커간에 싸워지고 있었기 때문에, 격렬한 경쟁 원리가 일한 것도 적지 않고 영향은 하고 있었을 것이다. 다만, 계속되는 DirectX 8시대에 돌입하기까지 큰 도태의 물결이 밀려, GPU 메이커도 몇사에 좁혀져 간다.
2000년~프로그래머블 셰이더 아키텍처의 개막. GPU 메이커 도태의 DirectX 8시대
1998년에는 세가 드림캐스트, 2000년에는 대망의 소니 플레이 스테이션 2가 발매가 되었지만, 3D 그래픽스의 처리 능력적으로는, 각각의 시점에서의 최신 PC 그래픽스와 같은 정도에 머물고 있었다.
확실히, 선진성은 PC측/DirectX측에 있었지만, 하드웨어(GPU)의 급격한 진화가 소프트웨어 업계를 견인할 수 없고, PC측은 기술의 싱크로니시티를 취할 수 없게 되어 왔다.
그렇다고는 해도, PC 업계로서는, 아무래도 매년, 전세계의 연구자들의 손에 의해 만들어지는 혁신적인 최신 3D 그래픽스 기술을 적극적으로 도입해 가고 싶다고 하는 기본 방침은 유지해 보겠습니다. 왜냐하면 최신 기술 자체가 견인해 가는 PC 업계에 있어서, 가정용 게임기와 같은 느긋한 진화 사이클을 도입하는 것은 어렵기 때문이다. 그렇다고 해서, 새로운 기능을 새로운 GPU에 탑재해, 그 때마다 DirectX에 그 기능을 활용하기 위한 API를 신설하고 있었던 것은 DirectX가 증식해 갈 뿐이다.
또, 실장된 신기능이 실제의 어플리케이션으로 이용되는 것은 아니고, 그러한 기능은 DirectX내에서 화석 기능으로서 계속 남는다. GPU 측에 있어서도 화석 기능을 위해 트랜지스터를 먹는 것은 부당하게 비용과 소비 전력을 올리게 되어 의미가 없다.
그래서 그래픽스 처리를 소프트웨어의 형태로 구현할 수 있는 구조를 GPU에 도입하면 어떨지라는 아이디어가 제창된다. 그것이 '셰이더가 프로그램 가능'이라는 의미를 담은 '프로그래머블 셰이더'(Programmable Shader)라는 개념이다. (계속)
세계 최초의 민생용 프로그래머블 셰이더 아키텍처 채용의 GPU 「GeForce 3」
GeForce 3의 인면 애니메이션 데모보다. 프로그래머블 셰이더를 활용하여 구현한 노멀 맵에 의한 범프 매핑 표현이 옷의 릴리프나 사람 피부 주름에 적용되고 있다
(트라이Z 니시카와 젠지)