강의

멘토링

로드맵

게임 개발

/

게임 프로그래밍

D3D12 프로그래밍 - 기초편

이제는 주류 그래픽 API의 자리가 D3D11에서 D3D12로 넘어간 것 같습니다. D3D12는 매력적인 기능들을 지원하지만 학습 난이도가 높은 편입니다. 하지만 차근차근 학습한다면 개인도 D3D12 API로 게임을 만들 수 있다고 생각합니다. 이에, D3D 12로 게임을 직접 만들어 본 경험을 바탕으로, D3D12 게임 프로그래밍에 도전할 수 있는 지식 기반을 전달하고자 합니다.

(5.0) 수강평 7개

수강생 82명

  • megayuchi
directx
directx12
3d-graphics
DirectXd3ddirectx-12DirectX12

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

이런 걸 배울 수 있어요

  • D3D12프로그래밍 기초

  • 엔진 프로그래밍 기초

Direct3D 12에 대하여

3-4년 전까지만 해도 D3D12는 PC게임의 주류 API는 아니었습니다. 여전히 많은 게임들이 D3D11로 개발되어 출시되고 있었고 개발이 까다로운 D3D12는 주류 API가 되기 어려워 보였습니다.

그러던 것이 RayTracing 등 직접적으로 그래픽 품질을 높일 수 있는 기능들에 힘입어 D3D12가 주류 API로 부상하게 되었습니다.

인기있는 상용엔진의 메인 API도 D3D11이 아닌 D3D12로 옮겨졌습니다. 흔치는 않지만 자체 개발하는 엔진들도 D3D12로 개발되고 있습니다.

이제 D3D12는 명백하게 주류 그래픽 API입니다. 상용엔진을 활용하는데만 집중한다고 하면 상관없겠으나 그 구조를 뜯어보고 커스터마이즈 해야하거나, 직접 렌더링 코드를 작성해서 자신만의 엔진을 만들고 싶다면 D3D12는 피해갈 수 없는 과정이라고 생각합니다.

D3D12학습이 이전보다는 어려운 편이지만 Descriptor Table, Resource Barrier, 비동기 렌더링 등 다소 생소한 개념들에 익숙해지면 이후에는 D3D11과 비슷한 느낌으로 개발이 가능합니다.

이 강의는 기초적인 그래픽스 지식을 갖추고 있고 D3D12 이전의 전통적인 그래픽 API(D3D11, OpenGL등)를 다뤄보신 분들이 D3D12 API에 적응할 수 있도록 길을 알려드리는데 초점을 맞추고 있습니다.

이런 내용을 다루고 있습니다

  • VertexBuffer와 IndexBuffer를 이용해서 도형을 그리는 방법

  • Texture를 사용하는 방법

  • Descriptor / Descriptor Heap / Descriptor Table 등 리소스 바인딩을 위한 새로운 개념들에 대한 이해

  • DirectX12 엔진 개발을 위해 필요한 자료구조들을 구현하는 방법

    D3D12에서 성능문제를 피하기 위한 필수기술

수강 전 참고사항

실습 환경

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

  • 사용 도구: Visual Studio 2022


학습 자료

  • pdf 제공

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

실습 환경

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

  • 사용 도구: Visual Studio 2022, pix

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

선수 지식 및 유의사항

  • C/C++

  • Windows 프로그래밍


이후 연결되는 강의

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • D3D9/D3D11 또는 OpenGL경험자

  • 그래픽스 기초지식을 갖춘 C/C++프로그래머

선수 지식,
필요할까요?

  • C/C++

  • 그래픽스 기초

  • D3D9/10/11 or OpenGL

안녕하세요
입니다.

2,803

수강생

60

수강평

13

답변

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/

 

 

커리큘럼

전체

11개 ∙ (7시간 9분)

해당 강의에서 제공:

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

수강평

전체

7개

5.0

7개의 수강평

  • baamdoo님의 프로필 이미지
    baamdoo

    수강평 1

    평균 평점 5.0

    5

    100% 수강 후 작성

    I am taking this course after becoming somewhat familiar with Vulkan, but this is the first time I have seen a lecture that explains the latest GraphicsAPI functions so neatly. This is a lecture where the instructor's skills stand out. However, it seems like it will be a little difficult for those who are new to graphics programming to follow along. ps. Looking at the latest GitHub, it looks like there will be a follow-up lecture, so I'm looking forward to it. ㅎㅎ

    • taewoolee2939님의 프로필 이미지
      taewoolee2939

      수강평 14

      평균 평점 4.8

      5

      100% 수강 후 작성

      It was very helpful not only for DirectX12 but also for the overall structure, memory management, etc. If you are familiar with STL, this lecture and code will help you improve your skills.

      • mjdkimss5569님의 프로필 이미지
        mjdkimss5569

        수강평 18

        평균 평점 5.0

        5

        64% 수강 후 작성

        • fordeer07173813님의 프로필 이미지
          fordeer07173813

          수강평 2

          평균 평점 5.0

          5

          64% 수강 후 작성

          Compared to when I learned DX11 and OpenGl in school or by self-study, Learning DX 12 while listening to the instructor's explanation is easier to understand. It's more intuitive and fun for hardware and systems. I hope it doesn't end with the basics.

          • hongildong님의 프로필 이미지
            hongildong

            수강평 1

            평균 평점 5.0

            5

            100% 수강 후 작성

            This is a lecture that explains in detail the biggest changes that need to be taken into account when moving from existing APIs such as D3D11 to D3D12. It would be better if it introduces a bit more diverse (including cases where errors occur) Resource Barrier utilization cases, various Root Signature setting cases for single objects, and Descriptor Table maintenance cases, as shown in the last lecture. Or, it would be good for students to upload various cases as pull requests to the sample code repository.

            ₩198,000

            megayuchi님의 다른 강의

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