[DirectX12] Chapter 1. DirectX란?

JH_Dev·2023년 10월 25일

DirectX12

목록 보기
1/2
post-thumbnail

대부분의 내용은 Rookiss님의 [C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12 강의를 듣고 정리한 내용입니다
코드보다는 개념 위주로 정리하고 있습니다
강의 들으러 가기


그래픽스란?

  • 3D 공간에서 배치한 오브젝트를 2D 화면에 보여주는 과정을 공부하는 것
    이 과정에서 복잡한 수학 연산과 물리 연산을 진행
    즉, 어떻게 3D → 2D 가 되는지 일련의 과정을 배우는 것
  • 유니티나 언리얼 같은 게임 엔진에서 모두 처리해 주지 않나..?
    라는 의문점이 생겼다

    DirectX를 공부하는 이유는 3D 게임 개발에 대한 기본기를 쌓기 위해서이다
    유니티를 약 3년 간 공부해왔지만 렌더링 파이프라인에 대해서는 잘 모르는 상태였다
    엔진의 사용법만 알고 있을 뿐 내부적으로 어떤 방식으로 3D -> 2D 가 되는 지 모르고 있었다
    DirectX를 공부한다면 내부 원리를 배우고 엔진 응용력을 늘릴 수 있을 것이다
    학교 선생님이나 Rookiss님 모두 DirectX의 모든 것을 이해하고 가려 하지 말고 3D -> 2D 변환 과정에 대한 흐름에 집중하라고 하셨다

CPU vs GPU

모든 모델은 무수히 많은 삼각형, 정점으로 이루어져 있다
이 모델들의 연산까지 CPU가 처리하긴 힘들다

  • CPU

    매우 고급 인력이며 복잡한 연산을 처리
    ALU(산술연산장치)가 적어 많은 일은 하지 못한다
  • GPU

    병렬 구조로 간단한 연산을 많이 처리
    ALU(산술연산장치)가 굉장히 많다

때문에 간단한 연산들은 GPU로 일을 넘겨 주어 처리해야 한다
이를 DirectX에서 처리

https://www.youtube.com/watch?v=-P28LKWTzrI
위 링크의 영상을 보면 CPU와 GPU의 차이점을 이해할 수 있을 것이다


DirectX란?

  • GPU를 제어하고 프로그래밍 하는데 쓰이는 저수준 그래픽API
  • 프로그래머는 DirectX에 따라 개발하면 된다
    DirectX를 만든 MS와 GPU 제조사들이 협력을 하여 GPU는 DirectX 표준에 따라 제조되었다.

렌더링 파이프라인이란?

  • GPU가 존재할 경우 GPU에게 연산을 넘겨줄 수 있다
    이때 정해진 규칙이 존재하는데 이를 렌더링 파이프라인이라고 한다
    사진과 같이 Input-assempler 부터 Vertex Shader ~ 있는데 이 일련의 과정을 DirectX를
    공부하며 함께 배울 것이다

0개의 댓글