DirectX 레이트레이싱

DirectX 레이트레이싱(DirectX Raytracing, DXR)은 비디오 그래픽 렌더링을 위해 마이크로소프트의 DirectX 12에서 광선 추적(레이트레이싱)을 구현하는 기능이다. DXR은 2018년 10월 10일 윈도우 10 10월 업데이트(버전 1809)와 함께 출시되었다. 이 기능은 광선 추적에 사용되는 높은 컴퓨팅 부하를 처리하도록 설계된 AMD 라데온 RX 6000, 7000, 또는 9000 시리즈, 인텔 인텔 아크 A 또는 B 시리즈, 혹은 엔비디아 지포스 RTX 20, 30, 40, 또는 50 시리즈 비디오 카드를 필요로 한다.

DirectX 12에 추가된 기능

10월에 DXR이 도입되면서 DirectX 12에 네 가지 새로운 기능이 추가되었다.

  1. 가속 구조(Acceleration structure)는 GPU를 위해 효율적으로 포맷된 3D 환경의 표현이다. 이 환경은 시작 지점을 만드는 데 사용되는 평면이다. 이 구조는 수정을 가능하게 하며 광선 탐색을 최적화한다.
  2. 명령어 목록인 DispatchRays는 반사 그래픽을 생성하는 데 사용되는 광선의 시작점이다. 이는 GPU가 광선 추적 프로세스를 시작하는 데 사용된다.
  3. 광선 추적 렌더링 시 DXR이 수행하는 작업을 계산적으로 기술하는 새로운 HLSL 셰이더(광선 생성, 최단 적중, 임의 적중, 미적중 셰이더)가 도입되었다. 이 셰이더들은 HLSL의 TraceRay 함수를 사용하여 환경 내에서 광선을 추적한다. 광선이 생성된 평면과 상호 작용할 때, 선택된 적중 또는 미적중 셰이더 중 하나를 호출할 수 있다. 적중 및 미적중 셰이더의 변화는 서로 다른 질감을 만들어낸다.
  4. 광선 추적 파이프라인 상태(Raytracing pipeline state)는 현재의 그래픽 및 컴퓨트 파이프라인 상태 객체에 대응하는 요소이다. 파이프라인 상태 객체는 GPU가 정보를 해석하고 렌더링하는 방식을 결정하는 하드웨어 설정이다.

기술적 세부 사항

POV-Ray를 사용하여 렌더링한 장면의 예시, 레이트레이싱을 사용하는 렌더링 도구

DXR은 주어진 평면의 각 픽셀에서 광선을 쏘아 시작하며, 평면 위의 어떤 물체에 광선이 먼저 부딪히는지 계산한다. 다음으로, DXR 알고리즘은 광선이 물체와 교차하는 지점의 빛의 양을 추정하고 그 계산값을 물체에 부여한다. 물체는 빛을 흡수하거나 반사하는 비율이 서로 다른 다양한 속성을 가질 수 있다. 광선의 무한 반사를 방지하기 위해 DXR은 일정 횟수의 교차 이후에는 계산을 중단한다. 물체와 전혀 상호 작용하지 않는 광선은 얼마나 멀리 이동했는지 추적된다. 이는 알고리즘이 광선이 너무 멀리 나갔을 때를 이해하기 위함이다.

업데이트

DXR은 2018년 10월 10일 윈도우 10 10월 업데이트(버전 1809)와 함께 대중에 공개되었다.

DXR에 대한 첫 번째 주요 업데이트는 2020년 5월 27일 윈도우 10 5월 업데이트(버전 2004)를 통해 이루어졌다. 5월 업데이트는 DXR Tier 1.1을 구현하여 게임 엔진이 실시간 계산을 수행할 수 있게 함으로써 광선 추적 그래픽을 더 빠르고 효율적으로 만들었다.

GDC 2025 기간 동안 마이크로소프트는 OMM(Opacity Micro-maps) 및 SER(Shader Execution Reordering)에 대한 표준화된 지원을 포함하는 DXR의 다음 업데이트(1.2)를 발표했다. 주요 하드웨어 공급업체들은 업데이트된 API 사양을 자사 제품에 구현할 것이라는 공식 성명을 발표했다.

각주

  1. 1 2 “Announcing Microsoft DirectX Raytracing!”. 《DirectX Developer Blog》. 2018년 3월 19일. 2020년 10월 27일에 확인함.
  2. ↑ stevewhims. “Managing Graphics Pipeline State in Direct3D 12 - Win32 apps”. 《docs.microsoft.com》. 2020년 11월 16일에 확인함.
  3. ↑ “DirectX Raytracing and the Windows 10 October 2018 Update”. 《DirectX Developer Blog》. 2018년 10월 2일. 2020년 10월 27일에 확인함.
  4. ↑ “Windows 10 May 2020 v2004 20H1 Feature Update Packs DirectX 12 Ultimate, Improved Ray Tracing Support, DirectX Mesh Shader And Many Other Features For PC Gaming”. 《Appuals.com》. 2020년 5월 12일. 2020년 10월 30일에 원본 문서에서 보존된 문서. 2020년 10월 27일에 확인함.
  5. ↑ “DirectX Raytracing (DXR) Tier 1.1”. 《DirectX Developer Blog》. 2019년 11월 6일. 2020년 10월 27일에 확인함.
  6. ↑ “Announcing DirectX Raytracing 1.2, PIX, Neural Rendering and more at GDC 2025!”. 《DirectX Developer Blog》. 2025년 3월 20일. 2025년 3월 25일에 확인함.

외부 링크