프로그래밍 공부

2023/10 45

  • 이전에 사용하던 ID3D11ShaderResourceView* srv 를 따로 만들어서 한개의 객체당 한개의 srv를 생성하는것 이 아닌. srv를 공통으로 사용할 경우. 같은 srv를 사용하도록 만들어보자. Texture #pragma once class Texture { private: // 복사생성자가 아니라 그대로 참조형 생성자로 이동시켜 사용한다 Texture(ID3D11ShaderResourceView* srv, ScratchImage& image, wstring file); ~Texture(); public: void PSSet(UINT slot = 0); public: static Texture* Add(wstring file); static void Delete(); private: ws..

  • DirectX, Windows 에서 사용할 ImGui의 설치개요에 대해 설명한다. https://github.com/ocornut/imgui GitHub - ocornut/imgui: Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies - GitHub - ocornut/imgui: Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies github.com https://gith..

  • 이전에 만들었던 Viewport작업을 먼저 전역변수로 빼준다. 카메라 위치좌표 작업을 새롭게 잡아준다는 의미이다. ViewPort Environment.h를 다음과 같이 선언한다. #pragma once class Environment : public Singleton { private: friend class Singleton; Environment(); ~Environment(); public: void Set(); void SetViewport(UINT width = WIN_WIDTH, UINT height = WIN_HEIGHT); void SetPerspective(); void CreateProjection(); private: MatrixBuffer* viewBuffer; MatrixBuff..

  • Vector는, STL( Standard Template Library ) 에 포함된 동적 배열 데이터 구조이다. vector는 배열과 유사하지만, 크기를 동적으로 조절할 수 있는 컨테이너이다. 일반적으로 동적 배열을 구현할때 사용하며, 임의접근이 필요할때 유용하다. 예를들어. 리스트나 큐와같이 순차적인 데이터에 비해 특정원소에 빠른 접근이 필요할 경우에 사용된다. #include #include int main() { std::vector myVector; // 정수형 원소를 담는 vector 생성 // 원소 추가 myVector.push_back(10); myVector.push_back(20); myVector.push_back(30); // 원소 출력 for (int i = 0; i < myVec..

    C++

    (STL)Vector NEW

    2023.10.17
    댓글
  • 지금까지 만들었던 프레임워크중에 Buffer와 Shader을 나누었던것을 하나의 Mesh와 Material로 나누어보자. 원래 Cube에서 사용되었던 (Shader) PiaxelShader VertexShader (Vertex Data) VertexBuffer vector(Vertex type들) IndexBuffer vector(indices들) 을 각각 Material 와 Mesh로 분리하여 작업한다. Mesh #pragma once template class Mesh { public: Mesh() = default; ~Mesh(); void Draw(D3D11_PRIMITIVE_TOPOLOGY type = D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); void CreateM..

  • DirectX의 3D연산에서는 대부분 행렬연산을 사용한다. Local좌표와 World좌표로 객체를 움직이기 위해 행렬연산을 사용하는데, 4X4 행렬을 이용해서 연산하게되면 데이터값의 연산이 빠르게 이루어지고 쉽게 판별할 수 있기 때문이다. 어떠한 Vertex의 위치좌표를 원하는대로 변경하는 함수를 만들어보자. 위와같은 방식의 함수들을 제작하여 입력된 객체를 이동시키거나, 조절하거나, 회전시키는것이 목표이다. #pragma once class Vector3 { public: Vector3(float x = 0.0f, float y = 0.0f, float z = 0.0f) : value(XMVectorSet(x, y, z, 0)) {} Vector3(Float3 value) : value(XMLoadFlo..