Programming/D3D12 25

[책공부] Chap7 연습 문제

연습 문제 1 연습 문제 2 연습 문제 3 연습 문제에서 주어진 건 Vertex 개수가 몇개인지, Type이 어떻게 되는지 Index가 몇개인지 알려주고, {} 안에 공백으로 포멧에 맞게 예쁘게 구분되어 들어었었다. 머... 파일 입출력을 잘 못하기도 하고, 귀찮기도 해서... 오로지 이 예제 텍스트 파일을 위한 읽기 함수를 만들었다. namespace Prac3 { void Prac3VerticesNIndicies(const wstring& _Path, vector& _outVertices, vector& _outIndices) { ifstream fin; fin.open(_Path); string TrashBin; UINT VertexCount; UINT IndicesCount; float px, p..

Programming/D3D12 2024.01.08

[책공부] FrameResource 예제 ( + Descriptor Table)

(사실 이해했는지 모르겠다. 어렴풋이 느껴질 뿐... 그래도 그 느낌을 정리한다.) 1. FrameResource를 이용한 기본 도형 그리기 예제(까지)가 연습시켜주는 기술 1_1 어뎁터 초기화 단계 (박스 예제에서 한 초기화 이후에 뭐가 없는 듯) 더보기 - 창(window) 생성 - 어뎁터 (D3DDevice) 생성 - GPU와 CPU 동기화를 위한 Fence 생성 - GPU와 CPU의 [데이터 전송을 위한 Descriptor View]의 Handle Size 초기화 (아마 요걸로 데이터 블록(아마도 테이블?)을 점프하면서 데이터를 읽을 것 같다.) - Command Queue, Command Allocator, Command List 생성 (멀티 스레딩을 위해 새로 바뀐 GPU에게 렌더링 동작을 요..

Programming/D3D12 2024.01.04

[책공부] 박스 그리기 예제

(사실 이해했는지 모르겠다. 어렴풋이 느껴질 뿐... 그래도 그 느낌을 정리한다.) (챕터가 넘어갈 수록, 글쓴이가 점점 강해지니 좀 읽을만한 정보는 후반 챕터에 있을 것이다. ㄹㅇㅋㅋ) 다음 글 1. 박스 예제(까지)가 연습시켜주는 기술 1_1 초기화 단계 - 창(window) 생성 - 어뎁터 (D3DDevice) 생성 - GPU와 CPU 동기화를 위한 Fence 생성 - GPU와 CPU의 [데이터 전송을 위한 Descriptor View]의 Handle Size 초기화 (아마 요걸로 데이터 블록(아마도 테이블?)을 점프하면서 데이터를 읽을 것 같다.) - Command Queue, Command Allocator, Command List 생성 (멀티 스레딩을 위해 새로 바뀐 GPU에게 렌더링 동작을 ..

Programming/D3D12 2023.12.27

[책공부] Chap6 연습 문제

(이미지 클릭하면 커집니다.) directx 12를 이용한 3d 게임 프로그래밍 입문 - 연습문제 연습 문제 1 연습 문제 2 연습 문제 3 연습 문제 4 연습 문제 6 연습 문제 7 (CB 업로드 버퍼를 새로 만드는 것도 이상하고, Box를 그리고 Flush()를 하고, CB값을 바꾸고 피라미드를 출력하는 것도 이상해서... 결론은 Instancing을 제대로 배워서 하는게 나을 것 같아, 마우스 클릭을 하면 박스와 피라미드를 번갈아 가면서 렌더링 하는 것으로 타협했습니다.) (맨 위에서 그냥 std::array를 새로 하나 만들면 되긴한데, 연습삼아 이렇게 해봤습니다.) 연습 문제 8, 9 연습 문제 10 연습 문제 11 a) 된다. layout 이랑 Buffer랑 따로 작동하고, 등록된다. b) 된..

Programming/D3D12 2023.12.26

[일기장] 책 공부 시작 (D3Ddevice -> viewport 초기화)

요거 사서 공부 시작한다. (번역 별로 안 좋다) http://aladin.kr/p/Zowiq DirectX 12를 이용한 3D 게임 프로그래밍 입문 DirectX 12로 게임을 개발해가며 대화식 컴퓨터 그래픽 프로그래밍을 익히는 입문서다. 1부는 기본적인 수학적 도구들을, 2부는 Direct3D의 기본 과제들을 수행하는 방법을, 그리고 3부는 여러 응용 www.aladin.co.kr 1. 예제코드 공부한 방법 - 어느정도 이미 추상화가 되어 있는 예제 코드를, 그냥 냅다 InitDirect3D() 와 Draw()에 박아 보았다. 2. 배운점 초기화 과정에서 버퍼를 초기화 하는데, ResourceBarrier 에서 약간 삽질을 했다. 1. Command List 나 Command Queue 뭐시기 2. ..

Programming/D3D12 2023.12.21