no image
38 Geometry
void SamplerDemo::Init(){ shader = make_shared (L"05.Texture.fx"); geometry = make_shared>(); //GeometryHelper::CreateQuad(geometry); //GeometryHelper::CreateCube(geometry); //GeometryHelper::CreateSphere(geometry); GeometryHelper::CreateGrid(geometry,10,10); vertexBuffer = make_shared(); vertexBuffer->Create(geometry->GetVertices()); indexBuffer = make_shared(); indexBuffer->Create(geometry->Ge..
2025.03.10
no image
37 Texture
GeometryHelper Class전 시간까지 사각형을 그렸고 이제 UV좌표계를 이용해 물체에 텍스처를 붙일것이다하지만 그 전에 모양을 여러개 만들어 볼 것이다Position과 UV를 Shader로 넘겨주는 VertexTextureData를 가지고 사각형, 큐브, 구, 그리드를 그려볼 것이다class GeometryHelper{public: ... static void CreateQuad(shared_ptr> geometry); static void CreateCube(shared_ptr> geometry); static void CreateSphere(shared_ptr> geometry); static void CreateGrid(shared_ptr> geometry);};GeometryHelper..
2025.01.20
no image
36 Camera
CameraDemo이번에는 CameraDemo Class를 만들어 카메라의 이동을 찍어 볼 것이다그전에 이전에 만들었던 프로젝트에서 Camera, Component, Monobehavior,Transform, GameObject 파일을 가져와 넣어준다class CameraDemo : public IExecute{public: void Init() override; void Update() override; void Render() override;private: shared_ptr shader; shared_ptr> geometry; shared_ptr vertexBuffer; shared_ptr indexBuffer; Vec3 translation = Vec3(0.0f, 0.0f, 0.0f); Matr..
2025.01.20
no image
35 Constant Buffer
ConstBuffer Class이번에는 ConstantBuffer를 이용해 그려진 사각형을 움직여 볼 것이다class ConstBufferDemo : public IExecute{public: void Init() override; void Update() override; void Render() override;private: shared_ptr shader; shared_ptr> geometry; shared_ptr vertexBuffer; shared_ptr indexBuffer; Vec3 translation = Vec3(0.0f, 0.0f, 0.0f); Matrix world = Matrix::Identity; Matrix view = Matrix::Identity; Matrix project..
2025.01.16
no image
34 사각형 띄우기
QuadDemo Classclass QuadDemo :public IExecute{public: void Init() override; void Update() override; void Render() override;private: shared_ptr shader; shared_ptr> geometry; shared_ptr vertexBuffer; shared_ptr indexBuffer;};QuadDemo.cppvoid QuadDemo::Init(){ shader = make_shared(L"02.Quad.fx"); geometry = make_shared>(); GeometryHelper::CreateQuad(geometry, Color(1.0f, 1.0f, 0.0f, 1.0f)); vertexB..
2025.01.16
no image
33 새 프로젝트 시작
새 프로젝트 설정새 솔루션 만들기이전에 했던 프로젝트는 두고 새로운 프로젝트로 빈 프로젝트를 만들어준다그 후 프로젝트 하위에 모든 것들을 지워주고새로 만들어 줄것이다새로 프로젝트 만들기로 lib 정적 라이브러리 파일을 Engine이라는 이름으로 만들고, 이는 Engine에 관련된 내용들을 가진 프로젝트가 될것이다또 새 프로젝트 만들기로 Windows 데스크톱 마법사를 Client라는 이름으로 만들고, 이는 클라 관련된 내용들을 가진 프로젝트가 될 것이다그리고 Client에 있는 모든 것들을 다시 만들것이므로 지워준다보면 이렇게 이런식으로 두 프로젝트가 공존하게 될 것이다폴더 설정Client, Engine 폴더는 자동 생성된 폴더들이고 다른 폴더들을 만들어주어 각각에 맞게 관리하도록 할 것이다Binarie..
2025.01.16
32 Data
DataXML, JSON현재 예제에서는 파일 포멧이 따로 없고 메모리상에 정보만을 가지고 있다이를 특정 파일 포멧에 저장하고 그 포멧안에 있는 정보를 메모리에 저장하여 표현을 할 수 있게 할것이다우리가 특정 파일 포멧을 설정해도 되지만 그것보단 많이 사용하는 XML이나 JSON 형태의 파일을 많이 사용한다이 파일을 사용하기 위해서는 특정 라이브러리를 사용해야 하는대 C++은 제공되는 라이브러리가 없기 때문에 외부 라이브러리중 tinyxml2라는 라이브러리를 사용할 것이다tinyxml 추가이 라이브러리를 다운받아 99.Headers/Utils 폴더에 넣어 추가해준 뒤 빌드를 해준다이때 미리컴파일된 헤더가 문제가 생길 것인데 이는 .cpp 파일에 미리 컴파일된 헤더를 추가하거나 비리 컴파일된 헤더를 사용하지..
2025.01.12
30 Material, Mesh
Mesh ClassMesh Classclass Mesh : public ResourceBase{ using Super = ResourceBase;public: Mesh(ComPtr device); virtual ~Mesh(); void CreateDefaultRectanble(); shared_ptr GetVertexBuffer() { return m_pVertexBuffer; } shared_ptr GetIndexBuffer() { return m_pIndexBuffer; }private: ComPtr m_pDevice; //Mesh shared_ptr> m_pGeometry; shared_ptr m_pVertexBuffer; shared_pt..
2025.01.12
29 Render Manager
Render Manager이제 렌더링을 RenderManager 클래스에서 하게될 것이다또한 MeshRenderer 클래스에서 일부분이 전시간에 만든 Material클래스로 빠져야 된다RenderManager는 SceneMGR처럼 물체를 들고 있는 Manager인대 그리는 물체들을 들고있는 클래스가 될 것이다RenderHelper 클래스도 같이 만들어 렌더링시 필요한 것들을 관리할 수 있게 해줄것이다RenderHelper.hstruct TransformData{ Matrix World = Matrix::Identity;};struct CameraData{ Matrix View = Matrix::Identity; Matrix Projection = Matrix::Identity;};- 사실상 ..
2025.01.12