Main
-
[006] 게임오브젝트 렌더링Programming/Dev 2023. 3. 5. 16:33
이전 게시글에서 DirectX12로 프레임워크를 변경했다. 그에 따라 많은 변경 사항들이 있었다. void NytLoader::Load(std::ifstream& fs, NytProperty* root) { ... case NytDataType::UI: data = new NytUI{ Read(fs) }; break; case NytDataType::IMAGE: data = new NytImage{ Read(fs) }; break; ... } 데이터 타입을 하나 추가했다. NytDataType::UI는 Direct2D 리소스, NytDataType::IMAGE는 D3D12 리소스를 만든다. template NytImage NytLoader::Read(std::ifstream& fs) { int lengt..
-
[005] Direct2D → DirectX12로 변경Programming/Dev 2023. 2. 19. 15:09
카메라 기능을 구현하려고 하는 도중 한 가지 생각이 들었다. 카메라 기능을 구현하기 위해 아래와 같이 코드를 작성한 상태였다. void LoginScene::Render(const ComPtr& renderTarget) const { WndManager::GetInstance()->Render(renderTarget); renderTarget->SetTransform(m_camera->GetMatrix()); m_paimon->Render(renderTarget); renderTarget->SetTransform(MATRIX::Identity()); } void NytImage::Render(const ComPtr& renderTarget) const { MATRIX view{}; renderTarget..
-
[004] 이미지 로딩 및 렌더링Programming/Dev 2023. 2. 2. 22:19
이전 게시글에서는 데이터 에디터로 만든 파일을 클라이언트에서 읽어오는 작업에 대해 작성했다. 이번에는 파일에서 이미지 데이터를 읽어서 화면에 렌더링하기까지의 과정에 대해 작성할 것이다. void NytLoader::Load(std::ifstream& fs, NytProperty& root) { NytDataType type{ Read(fs) }; std::string name{ Read(fs) }; std::any data{}; switch (type) { case NytDataType::GROUP: break; case NytDataType::INT: { data = Read(fs); break; } case NytDataType::FLOAT: { data = Read(fs); break; } case..
-
[003] 데이터 로딩Programming/Dev 2023. 1. 28. 14:02
이전 게시글에서 데이터 에디터를 통해 저장한 파일을 클라이언트에서 읽어오는 작업을 했다. 이렇게 생긴 데이터를 불러와보도록 할 것이다. class NytLoader : public TSingleton { public: NytLoader() = default; std::unique_ptr Load(std::string_view filePath); private: void Load(std::ifstream& fs, NytProperty& root); }; std::unique_ptr NytLoader::Load(std::string_view filePath) { std::ifstream ifstream{ filePath.data(), std::ifstream::binary}; assert(ifstream);..
-
[002] 데이터 에디터Programming/Dev 2023. 1. 24. 22:04
게임에 사용할 데이터를 관리할 툴을 만들어 보았다. 해당 툴은 C#을 이용하여 제작하였다. 처음 켜면 이런 모습이다. 상단의 메뉴를 통해 파일을 만들거나 열 수 있다. 파일을 새로 만들거나 열면 하위 윈도우가 생기고 트리 구조 데이터를 보여준다. 노드는 편집 - 추가 메뉴를 통해 위와 같이 만들 수 있다. GROUP 타입 같은 경우 이름 그대로 하위 노드들을 그룹 지을 때 사용한다. 물론 다른 타입의 노드 하위에도 노드를 추가할 수 있다. 타입 같은 경우 GROUP, INT, FLOAT, STRING, IMAGE가 있다. IMAGE 타입의 경우 .png파일을 저장할 수 있게 하기 위한 타입이다. 이미지는 나중에 클라이언트에서 이 데이터를 읽어서 정상 출력되는지 확인해볼 예정이다. 2 GROUP, MyGr..