공부/게임수학 및 DirectX12 4

Direct3D 12 그래픽 파이프라인

Shader struct VS_IN { float3 pos : POSITION; float4 color : COLOR; }; struct VS_OUT { float4 pos : SV_Position; float4 color : COLOR; }; VS_OUT VS_Main(VS_IN input) { VS_OUT output = (VS_OUT)0; output.pos = float4(input.pos, 1.f); output.color = input.color; return output; } float4 PS_Main(VS_OUT input) : SV_Target { return input.color; } 만약 셰이더를 꾸미고 싶다면 단순히 셰이더 스크립트에 가서 작업을 한다면 좋겠지만, 셰이더는 셰이더만의..

기초 베이스

흐름도 Client : visual Studiod에서 제공하는 어플리케이션 규격을 모아 놓은 클래스 GAME : 사용자가 만들 게임 클래스 Engine : 게임을 돌아가게 하는 클래스 Device : 랜더링에 관련된 Device의 생성 및 행동을 관리해주는 클래스 CommandQueue : CPU에서 연산된 작업을 모아, GPU에 효율적으로 작업을 전달하는 클래스. SwapChain : 랜더링이 끊기지 않게 2개의 작업 요청서를 관리해주는 클래스. DescriptorHeap : CPU의 연산 작업을 GPU에게 맞는 양식으로 변환해주는 클래스. EnginePch : Engine 클래스에서 필요한 각종 라이브러리 및 API를 모아 놓은 곳. Client 전역 변수로 EnginePch에 있는 윈도우 출력 규격..

Library

Library란? 라이브러리는 유사한 기능을 하는 컴파일된 함수나 클래스의 집합체이다. 이미 컴파일되었기 때문에 링크를 통해 호출하여 사용할 수 있습니다. 구성 정적 라이브러리(lib) : 링크 시간에 실행파일에 포함된다. 동적 라이브러리(dll) : 실행파일에 포함되지 않고 실행 시간에 메모리에 로드된다. 정적 라이브러리 (Static Library) 프로그램 빌드시 라이브러리가 제공하는 코드를 실행 파일에 넣는 방식의 라이브러리이다. 컴파일의 링킹 단계에서 실행파일에 결합되는데, 라이브러리(lib 파일)를 실행 바이너리에 포함시킨다는 의미이다. 장점 동적 라이브러리에 비해 속도가 빠르다. (런타임시 외부 참조가 필요없어 속도가 향상 됨.) 생성이 간단하다. 프로그램 내 적재하기 때문에 이식성이 좋다...

Rendering Pipe Line & GPU

CPU 와 GPU CPU 내부 구성요소 ALU (Arithmetic Logic Uint) 각종 산술 연산과 논리 연산 등을 수행하는 회로들로 이루어진 하드웨어 모듈 산술 연산( + , - , * , % ) / 논리 연산 (AND, OR, NOT, XOR 등) / 쉬프트 연산 레지스터 세트(Register Set) - 주기억장치 CPU 내부에 위치한 기억장치 컴퓨터의 기억장치들 중에서 액세스 속도가 가장 빠름 구현 회로가 복잡하여 레지스터들의 수가 제한됨 레지스터 종류 제어용 레지스터 - 명령어 실행 과정 제어에 필요한 정보를 저장 일반 산술용 레지스터 - 명령어 실행에 필요한 데이터나 계산 결과를 임시적으로 저장 제어 장치 (Control Unit) 프로그램 코드(명령어)를 해석하고, 그것을 실행하기 위..