728x90

2023/09/20 2

DirectX 11 스터디 - 고유 물체를 정의할 GameObject 만들기

여기까지 개발한 렌더링 처리 객체인 Pipeline, 그리고 물체마다 고유한 값을 가질 수 있는 객체들을 모아서 GameObject 를 만들어본다. 방향성은, 유니티 엔진의 GameObject 스타일로 만들고, Transform 처리는 컴포넌트 형태로 만들어 붙여보는 순서로 진행. 한번에 몰아서 구현하던 Game 클래스에서, 물체마다 고유한 값을 가져야 하는 객체들을 모두 GameObject 로 옮겨서 구현. class GameObject { public: GameObject(ComPtr device, ComPtr deviceContext); ~GameObject() {} void Update(); void Render(shared_ptr pipeline); private: ComPtr _device; ..

DirectX 11 스터디 - 모듈화 (2), 렌더링을 책임질 Pipeline클래스 작성

앞에서 Geometry, VertexData 부터 Output Merger 의 BlendState까지 모두 모듈화 해서 DX COM객체를 캡슐화 했고, 이번엔 모듈화한 객체들을 가지고 Rendering Pipeline 을 실제 수행하는 객체를 작성해본다. 파이프라인에서 고유하게 존재하고 사용되어야 하는 모듈들과, 3D 물체마다 값/설정이 변경되어야 하는 모듈을 구분한다. 3D 물체마다 설정이 변경되어야 하는 객체들을 별도로 그룹화 해서 PipelineInfo 구조체로 묶어준다. 렌더링 파이프라인에 이 구조체를 기준으로 설정을 바꿔서 태워주면 새로운 물체를 그릴 수 있게 됨. PipelineInfo 는 아래 구성 요소가 포함됨. 여기서 ConstantBuffer는 3D 메시마다 필요할 수도, 필요하지 않을..

728x90
반응형