Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
게임 개발

/

게임 프로그래밍

DirectX Raytracing Programming

DirectX 12는 실시간 Raytracing을 지원하며, 고품질 그래픽을 간결한 코드로 구현할 수 있습니다. 하지만 높은 진입장벽 탓에 이를 직접 활용하는 프로그래머는 드뭅니다. 이 강좌는 실제 게임에 적용한 경험을 바탕으로, 수강자 여러분이 직접 Raytracing 엔진을 개발할 수 있도록 도와드립니다.

(5.0) 수강평 2개

수강생 17명

  • megayuchi

먼저 경험한 수강생들의 후기

이런 걸 배울 수 있어요

  • D3D12-DirectX Raytracing API 학습

  • 자체 엔진 개발

  • 자체 엔진에 Raytracing기술 적용 하기

DirectX Raytracing Programming을 학습하여 나만의 엔진에 Raytracing기술을 적용해봅시다.

DirectX 12는 GPU기반의 실시간 Raytracing을 지원합니다. Raytracing기술을 사용하면 고품질을 게임 그래픽을 더 쉽고 간결한 코드로 구현할 수 있습니다. 그럼에도 불구하고 DirectX12 API의 높은 진입장벽과 상용엔진에 의존하는 트렌드에 밀려 실제 DirectX Raytracing기술을 직접 사용할 수 있는 프로그래머는 극히 적습니다. megayuchi의 D3D12강좌에서 이어지는 본 강의는 실제 게임에 DirectX Raytracing을 적용해 본 경험을 바탕으로 수강자 여러분들이 직접 Raytracing 기반의 엔진을 개발할 수 있도록 도와드립니다.

이런 내용을 배워요

DirectX Raytracing 개요

Raytracing의 기본 개념을 소개하고 이를 DirectX API에서는 어떻게 구현하고 있는지를 설명합니다..

RTPSO(Raytracing Pipeline State Object)

DirectX Raytracing프로그래밍에서 아마도 가장 이해가 안되는 3가지 주제 중 하나일것 같습니다. Ray Tracing Pipeline State Object가 무엇인지, 무엇을 담고 있는지 어떻게 생성하고 사용하는지를 설명합니다.

Acceleration Structure

실시간 Raytracing에서 꼭 필요한 공간 가속구조 BVH는 DirectX Raytracing에서 Acceleration Structure라는 이름의 객체로 구현되어있습니다. 이를 어떻게 생성하고 사용하는지 설명합니다.

Raytracing Shader

DirectX Raytracing에서는 상황에 따른 callback함수 개념으로 여러가지 유형의 shader 함수를 지원합니다. 이러한 shader코드의 내부를 어떻게 구현하고 어떤 때에 사용하는지 설명합니다.

Shader Resource Binding

처음 DirectX Raytracing프로그래밍을 학습할 때 가장 막히는 부분입니다. 매시의 각 부분에 어떻게 텍스처를 맵핑해야 하는지 재질 데이터를 어떻게 전달해야 하는지, 텍스처 좌표와 법선벡터는 어떻게 읽어와야 하는지, 처음엔 정말 막막한데요. 이 부분을 차근차근 확실하게 설명해드립니다.

간단한 엔진 프레임워크를 만들고 Raytracing적용하기

하드코딩으로 구현한 간단한 도형의 렌더링 데모와 게임에 사용하기 위한 코드와는 상당한 거리가 있습니다. 본 강좌에서는 Raytracing을 적용할 수 있는 간단한 게임 프레임워크를 직접 구현해봅니다. 간단한 코드지만 장기적으로는 엔진 개발을 위한 발판이 될 것입니다.

Rigid transformation

게임 오브젝트들이 모양 변화 없이 강체변환(회전/스케일/이동) 되는 경우 Raytracing 코드에서 이를 어떻게 반영해야 하는지 설명합니다.

Non-rigid transformation

게임 오브젝트들의 모양이 변화되는 변환(스키닝 등)이 필요할 때 이를 어떻게 구현해야 하는지 설명합니다.

수강 전 참고 사항

실습 환경

  • 운영 체제 및 버전(OS): Windows 10/11

  • 사용 도구: Visual Studio 2022, pix

  • 필수 하드웨어: DirectX Raytracing이 지원되는 GPU - nvidia GTX1060이상, AMD RX6400 이상

학습 자료

  • pdf 제공

  • github와 첨부파일을 통한 소스코드 제공

선수 지식 및 유의사항

  • C/C++

  • Windows 프로그래밍

  • D3D12 프로그래밍 지식(

    다음의 강의를 선수강 하시기를 권장합니다).

  • D3D12프로그래밍 기초편( https://inf.run/WYdms )

  • D3D12프로그래밍 기초 플러스(https://inf.run/itHDW)


이런 분들께
추천드려요

학습 대상은
누구일까요?

  • 자체 그래픽 엔진에 실시간 Raytracing 기술을 적용하고 싶은 프로그래머

  • D3D12프로그래밍을 학습했지만 써먹을 곳이 없다고 느끼는 프로그래머

선수 지식,
필요할까요?

  • D3D12

  • C/C++

  • Windows 프로그래밍

안녕하세요
입니다.

2,711

수강생

56

수강평

12

답변

5.0

강의 평점

9

강의

프로그래머

C++,x86/x64 ASM, DirectX9/11/12, Metal, OpenGL, CUDA, win32, winsock/bsd socket

 

인프런 강의

D3D12프로그래밍 기초편 - https://inf.run/7gJhS

D3D12프로그래밍 기초플러스 - https://inf.run/itHDW

DirectX Raytracing 프로그래밍 - https://inf.run/cQqx7

Windows System 프로그래밍 - https://inf.run/AwfCv

Windows Debugging Tips - https://inf.run/zL7E4

 

Blog : https://megayuchi.com

Youtube : https://youtube.com/megayuchi

LinkedIn : https://www.linkedin.com/in/megayuchi/

 

 

커리큘럼

전체

17개 ∙ (11시간 21분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

전체

2개

5.0

2개의 수강평

  • kim_wonjin님의 프로필 이미지
    kim_wonjin

    수강평 1

    평균 평점 5.0

    5

    100% 수강 후 작성

    솔직히 이 강의는 Direct3D 12로 프로그래밍하는 분들뿐만 아니라, 게임 프로그래밍을 해보고 싶은 분들이라면 꼭 한 번쯤 들어봐야 할 강의라고 생각합니다. 단순히 화면에 물체를 렌더링하는 데 그치지 않고, 리소스를 어떻게 관리할지, 직접 게임을 만들 때 어떤 식으로 구조를 잡아가야 할지에 대한 실질적인 인사이트를 얻을 수 있었습니다. 영천님의 다른 인프런 강의들처럼 이 강의 역시 매우 훌륭했고, 덕분에 바닥부터 게임을 만들어보고 싶다는 제 목표에 한 걸음 더 다가갈 수 있었습니다. 정말 감사합니다!

    • Semi Kim님의 프로필 이미지
      Semi Kim

      수강평 1

      평균 평점 5.0

      5

      35% 수강 후 작성

      월 ₩49,940

      5개월 할부 시

      ₩249,700

      megayuchi님의 다른 강의

      지식공유자님의 다른 강의를 만나보세요!