# DirectX12

19개의 포스트
post-thumbnail

[DirectX12][DXR] PBR 구현하기

DXR프로젝트에 구현한 PBR내용 정리PBR이 대세가 되기전에 자주 사용하던 Phong Shading등의 방식들은 다음과 같은 문제가 있다.그래서 미세면(Microfacet)의 특성을 고려한 물리적으로 말이되는 렌더링방식인 PBR이 등장한다.참고한 사이트: https&

2023년 5월 7일
·
0개의 댓글
·
post-thumbnail

[DirectX12][DXR] 노말맵 구현

노말맵의 개념과 DXR에서의 구현기노말맵은 위 그림과 같이 평평한 표면이 마치 평평하지 않은것처럼 보이게 하는 트릭이다.적은 계산복잡도로 월등한 퀄리티의 결과물을 낼 수 있어서 현대 게임에서도 많이 사용되는 기술이다.노말맵은 텍스처의 일종으로 rgb값들이 2차원으로 나

2023년 4월 22일
·
0개의 댓글
·

[DirectX12] 기본 개념 정리2

소실점거리에따른 크기물체 겹침조명그림자삼각형이 많으면 근사하게 본뜨지만 처리량 늘어난다균형점 찾아야한다모델러가 생성해준다내적외적없는 대신 변조가 있다32비트색상벡터를 xmcolor로 변환하는 함수정점에 공간위치 정보, 법선 벡터, 텍스터 좌표정점 중복되면 안됨정점 인덱

2023년 4월 12일
·
0개의 댓글
·

[DirectX12] 기본 개념 정리

XMVECTORXMFLOAT234load float234 벡터변환store float234 플로트변환get set xyzwFFFGHHCXMVECTOR32XMMATRIXXMFLOAT4x4ScalingRotation xyz axistranslationtranslation

2023년 4월 11일
·
0개의 댓글
·
post-thumbnail

[DirectX12] Initializing DirectX 12

본 포스트는 Introduction to Direct3D 12를 발췌하여 번역 및 정리한 포스트입니다. DirectX 11 프로그래밍에 대한 기본적인 개념을 이해하셨다면 내용을 조금 더 쉽게 이해하실 수 있습니다. (빠른 정리를 위해 반말투를 사용하니 양해 부탁드립니닷) Introduction to Direct3D 12 “DirectX 12 는 마소에서...

2023년 2월 1일
·
0개의 댓글
·
post-thumbnail

Component

유니티 스타일로 Input 만듦.이렇게 매 프레임마다 키 체크를 하는 이유는 동일한 프레임에서는 키상태가 항상 일정하다고 가정을 해야한다.동일 프레임에서 한번 확인했을때는 누른 상태였는데 다시 확인하니까 때진 상태라거나 하는게 말이안된다.그리고 이부분 winAPI인데:

2022년 11월 30일
·
0개의 댓글
·

[DirectX12] ComPtr Interface

ComPtr Interface의 중요 부분들을 자세하게 코드를 포함하여 설명합니다.

2022년 11월 18일
·
0개의 댓글
·
post-thumbnail

[DirectX12][DXR] DXR프로그래밍3(Shader Binding Table)

DXR프로그래밍을 진행하기 위해서는 Shader Binding Table,줄여서 SBT란 녀석을 만들어야 한다.mesh별로 Draw콜을 할 수 있는 Rasterization Pipeline과 달리 DXR Ray Tracing은 화면을 DispatchRay콜로 한번에 그

2022년 8월 21일
·
0개의 댓글
·
post-thumbnail

[DirectX12][DXR] DXR프로그래밍2(Acceleration Structure)

DXR로 Ray tracing 렌더링을 하기 위해서는 렌더링할 Object들의 데이터(Vertex,Index)를 특수한 가속 구조(Acceleration Structure)에 넣어줘야 한다.왜 이러한 가속구조에 렌더링 데이터를 넣어줘야하는지 이해하는게 중요하다.그 이유

2022년 8월 20일
·
0개의 댓글
·
post-thumbnail

[DirectX12][DXR] DXR프로그래밍-1(Raytracing Pipeline State Object)

22년 7월~8월 까지 DXR프로그래밍을 열심히 했다.깃헙 링크코딩을 진횅하면서 이해한 DXR개념들을 간단히 정리한다.DXR은 2018년 10월 기존 DirectX12 API에 새로 추가된 기능이다.DXR의 약자는 (DirectX Raytracing)이다. 이전까지 R

2022년 8월 19일
·
0개의 댓글
·
post-thumbnail

[DirectX12] Root Signature

DirectX12의 Root SIgnature개념에 대한 정리루트 시그니처를 간단히 말하자면 GPU에서 돌아가는 Shader프로그램이 특정 Register에 어떤 데이터를 가리키게 할것인가? 를 정의해주는 GPU에 할당된 정보라고 할 수 있다.문법은 위와 같다. 특이한

2022년 8월 18일
·
0개의 댓글
·
post-thumbnail

[DirectX12] Descriptor Heap

DirectX12의 GPU메모리 관리의 핵심인 Descriptor Heap 정리Descriptor Heap은 Descriptor들이 저장된 GPU힙 메모리를 의미한다.Descriptor Heap을 이해하기 위해서는 먼저 Descriptor가 무엇인지 정확히 알아야 한다

2022년 8월 17일
·
0개의 댓글
·

DEPTH STENCIL VIEW

Render target View처럼 마지막 단계에 무언가 하는 녀석이다. 우리는 3D로 찍은 카메라를 2D로 표현하기를 바라고 있다. 이를 처리해주는 단계가 DTV라고 보면 되겠다.카메라에 찍힌 세상 즉 3D 세상의 깊이를 표현하는 좌표계로, 위에 말한 Depth S

2022년 8월 16일
·
0개의 댓글
·
post-thumbnail

Texture Mapping

Texture는 jpg, png와 같은 이미지 파일로 게임에서 모델을 만들 때 사용하는 이미지를 뜻한다.UV 좌표계는 3차원 공간에 폴리곤에 텍스쳐를 입히기 위한 기준이 되는 2차원 좌표계이다. UV 좌표는 최소0 최대1의 좌표를 가지고 있다.정점 대신 UV좌표를 매핑

2022년 8월 12일
·
0개의 댓글
·
post-thumbnail

Index Buffer

Mesh를 그려주는 것을 살펴보면 하나의 Mesh 객체를 사용하여 그린다는 점을 알 수 있다. 그렇기 때문에 처음 Mesh에 대한 좌표값에 대한 설정은 한 번만 실행 해주게 된다. Mesh의 Init에서 Mesh는 Descriptor를 만들어준다. 이러한 행동은 자원을

2022년 8월 11일
·
0개의 댓글
·

Root Signature

🌞 Root Signature의 한계 Root Signature는 데이터를 담을 수 있는 크기가 DWORD64로 정해져 있다. 그렇기 때문에 너무 많은 데이터를 Root Signature에 넣을 수 없기 때문에 여러 데이터를 담을 수 있는 테이블을 선언하고 매핑하여

2022년 8월 11일
·
0개의 댓글
·
post-thumbnail

DirectX12 #1 [DirectXMath 라이브러리 벡터]

DirectX12에서 사용하는, 엄밀히는 Windows SDK의 일부인 DirectXMath의 벡터에 대해 알아보겠습니다.

2022년 8월 11일
·
0개의 댓글
·

Constant Buffer

🌞 Constant Buffer(CBV) Constant Buffer란? ( 상수 버퍼 ) Root Signature의 하나의 서명방법으로, 아래의 예제는 상수를 다룰 때의 버퍼를 보여준다. root constant로 값은 상수를 다룬다는 것을 의미한다.

2022년 8월 7일
·
0개의 댓글
·

장치 초기화

DirectX는 프로그래머가 컴퓨터의 GPU에게 명령을 내릴 수 있는 것이라고 생각하면 된다.GPU는 여러가지 제조사가 있을 것이다. Intel이 됐든, Nvdia가 됐든, 이러한 회사 각각이 다른 정책을 가지고 GPU와의 연동을 지원한다면 프로그래머 입장에서 보았을

2022년 8월 3일
·
0개의 댓글
·