Rookiss(6)
-
루키스 게임수학 정주행 5회차 - 장치 초기화 최종 정리
1. 시작하기 전에... 이전 포스팅부터 말했지만 스스로 리마인딩을 시키기 위해서 다시 한 번 글로 적겠다. 절대 완벽주의로 진도를 나가면 안된다. DirectX 12를 배운다는 것은 CPU가 GPU에게 그래픽 명령을 내리는 흐름을 배운다는 것을 알아야 하며 전체 흐름을 보는데 방해가 되지 않도록 나무가 아닌 숲을 보고자 노력해야 한다. 그래서 이번 포스팅부터는 각 함수, 클래스들의 자세한 사항을 적지 않을 것이다. 각 코드가 뭘 의미하는지 이해가 안가더라도 전체적인 흐름을 간단하게나마 이해했다고 판단이 들면 그냥 넘어갈 것이다. 첫 정주행은 이렇게 할 것이다. 두 번째 정주행은 언제가 될 지 모르겠지만 말이다. 2. 결국 장치 초기화란? 그래픽스 API로 엔진을 만든다는 것은 컴퓨터에게 그래픽과 관련된..
2023.07.06 -
루키스 게임수학 정주행 4회차 - "또" 장치 초기화
0. 장치 초기화에서 표류된지 40일 5월 10일에 게시했던 글을 업로드 한지 40일이 되었는데 아무리 생각해도 미친 짓이 맞다. 뭔가를 쓰려거든 알고 써야 한다는 이야기를 들은 적이 있었고 나도 거기에 동의했기 때문이다. 그래서 지금까지 계속 이해가 될 때까지 장치 초기화라는 내용을 가지고 다른 곳을 드나들면서 자세하게 정리를 하면서 내 머릿속에 넣으려고 했었다. 그런데도 찝찝한 기분이 가시지를 않아서 Rookiss님의 강의 섹션 11의 장치 초기화를 봤는데 그제서야 찝찝한 기분이 가시게 되었다. 하지만 그것이 절대로 내가 모르던 것을 알게 되었기 때문은 아니었다. 1. 외우지 마! 이해하지도 마! 본인이 공부를 하려고 하는데 옆에서 이런 소리를 하고 있으면 기분이 어떨 것 같은가? 사람마다 반응은 다..
2023.06.19 -
루키스 게임수학 정주행 3회차 - 장치 심화
사실 이전에 "장치 초기화"라는 제목으로 글을 쓴 적이 있었는데 4가지 클래스를 정의한 적이 있었다. 근데 사실 코드를 따라 치면서 이해하지 못한 부분들이 있었고 그래서 그것들을 하나하나 짚고 넘어갈 것이다. 1. GraphicDevice 간단하게 설명하면 GPU에게 명령을 내리기 위한 인터페이스로 ID3D12Device와 IDXGIFactory를 멤버로 가지고 있다. 이제 이 두 자료형이 DX12에서 어떤 역할을 하는지 알아보자. 1) ID3D12Device 리소스 관리: GPU가 그림을 그리도록 명령을 하려면 무엇을 그려야 하는지 알려줘야 한다는 사실은 너무 자명하다. 즉, 이 얘기는 GPU가 무엇을 그려야 하는지에 대한 데이터를 어딘가에 저장해야 한다는 뜻이기도 하다. 바로 이 데이터가 "리소스"이..
2023.06.06 -
루키스 게임수학 정주행 2회차 - 번외(버그)
갑자기 뜬금없이 번외가 올라와서 당황스러울 것이다. 다름이 아니고 프로젝트를 하다가 어이없는 상황을 만나게 되어서 이렇게 글을 쓰게 되었다. 인프런의 강의를 유료로 결제하면 강의 영상과 함께 예제 파일을 다운받을 수 있다. 거기에 있는 코드는 당연히 잘 돌아가야 한다. 실제로 다운받아서 실행시켰을 때, 잘 돌아갔다. 근데 문제는 내가 그걸 토대로 코드를 작성했는데 내가 짠 코드는 돌아가지 않는 것이었다. 코드가 돌아가지 않는 이유는 CreateSwapChain이라는 함수에서 SwapChain이 생성되지 않았기 때문이었다. 여러 개의 프로젝트를 만들고 예정에도 없던 틀린 그림 찾기를 하다가 깨닫게 된 것은 결국 내 실수로 발생되 버그였다는 것이다. 너무 어이없고 초보자들에게 발생하기 쉬운 실수인 것 같아서..
2023.05.17 -
루키스 게임수학 정주행 2회차 - 장치 초기화
1. CPU vs GPU 우리가 대부분 사용하는 컴퓨터에는 CPU와 GPU라는 부품이 거의 대부분 기본적으로 장착되어 있을 것이다. 오늘 할 것은 엔진을 만드는 데 있어서 GPU에게 효율적으로 일을 시키는 일인데 그 전에 CPU와 GPU가 어떤 차이가 있는지 간략하게 알아볼 필요가 있다. 우선 차이점을 그림으로 그리면 다음과 같다. 위의 이미지를 보면 CPU와 GPU에 달려있는 레지스터, 캐시 등의 갯수와 구조에서 차이를 볼 수 있다. 이런 차이를 보이는 이유는 CPU가 하나의 연산을 아주 빠르게 처리하기 위한 것이라면 GPU는 여러 개의 작업을 병렬적으로 한꺼번에 빠르게 처리하기 위해 설계되었기 때문이다. 실제로 우리가 앞으로 공부하게 될 그래픽스의 내용은 게임 월드에 있는 객체들을 모니터 상으로 표현..
2023.05.10 -
루키스 게임수학 정주행 1회차 - 프로젝트 세팅
이번에 진행할 DirectX12는 어떤 후배와 같이 진행하기로 했다. 그 후배는 엔진을 만드는 학생치고는 제법 규모있는 프로젝트를 할 생각이었다. 강의를 정주행하면서 우리 프로젝트에 맞게 예제를 작성하면서 진도를 나갈 것이고 여기에 적힐 소스 코드의 대부분은 아래의 github에 업로드 될 것이다. (라이센스 주의) 그럼 시작하겠다. https://github.com/Unknown-Stryker/Frogman_API_Lab GitHub - Unknown-Stryker/Frogman_API_Lab Contribute to Unknown-Stryker/Frogman_API_Lab development by creating an account on GitHub. github.com 1. 프로젝트 생성 및 초기..
2023.05.01