본문 바로가기

DirectX( 다이렉트 X)/D3D11 제작일지

큐브 제작, 파이프라인 프레임워크 나누기 (2020 01 05)

APP  :: 매프레임 루프해 명령큐에 있는 메세지를 확인하고 처리 , +오브젝트 생성 (PeekMessage)

CustomException :: 예외처리용, 예외발생시 메세지박스 띄움

Keyboard :: 어떤 키보드의 키를 입력 받았는지 확인

Mouse :: 마우스 키 입력을 받았는지 확인

Timer :: 프레임 반복을 위한 타이머 메소드 (C++11에서 지원하는 시간라이브러리 chorno 사용)

Window :: 윈도우 객체 생성하고 키보드 마우스 객체도 생성, 메세지 프로시저

WinMain :: 메인 함수 

InfoManager :: 예외처리시 오류정보들 저장한뒤 띄우기,

CustomDefine :: 매크로 정의 및 상수

GrahpicsClass :: 디바이스 초기화, 다비이스 가져오기

VertexShader.hlsl :: 버텍스 쉐이더 포지션값 조절

PixelShader.hlsl ::  픽셀 쉐이더 색값 조절


파이프라인

+PipeLineHeaders :: 파이프라인 폴더 헤더파일 모음

+PipeLine ::바인딩 함수가 필요한 클래스의 부모클래스 (콘텍스트 바인딩 함수 정의)

+VertexBuffer :: 정점 버퍼 생성 및 바인딩

+InputAssembler :: InputLayout 생성한 후  콘텍스트에 바인딩

(정점 버퍼로 부터 가져온 데이터로 프리미티브 제작, 시스템 생성값을 버텍스 쉐이더에 보내 출력)

+VertexShader :: 버텍스 쉐이더 생성 및 바인딩 

+PixelShader ::픽셀 쉐이더 생성 및 바인딩 (색담당)

+IndexBuffer :: 인덱스 버퍼 생성 및 바인딩

+Topology :: 프리미티브 설정 타입을 매개변수로 받아 생성 바인딩

+ConstantBuffers :: 상수버퍼 생성 (자식클래스 VertexConstantBuffer,PixelConstantBuffer)

+TransformConstantBuffer :: 크기(S),회전(R),위치(T)를 위한 상수 버퍼

 

그리기

+Drawing :: 오브젝트들을 벡터 스마트포인터에 저장하고 APP에서 출력

+Box :: 파이프라인의 헤더를 가져와 디바이스에 박스를 생성하는 클래스

->다음할일:: 다각형 클래스 만들기

 

후기:: 각 파이프라인이 바인딩하고 출력하는 부분을 쪼개서 클래스화 시켯다, PipeLine 함수에 공용으로 사용한 바인딩 함수를 정의해서 다형성을 높여 코드확장성이 좋아졌다. 다각형 클래스만들때 템플릿을 써서 다형성을 지향해야겠다.