texture5 37. DirectX11 3D 입문_Geometry Cube, Sphere, Grid도 만들어 보자. 1. Cube 그리기 Cube를 전략적으로 하나씩 생각해 보자. 정점이 몇 개 필요할까? 단순히 색상만 표현하려면 8개로 충분하다. 근데 UV 매핑까지 할 것이다. 면마다 하나씩 그림을 붙이는 걸 목표로 한다. 그런 경우는 점이 8면 uv 좌표를 세팅하게 될 텐데 정점을 줄일 수 없고, 4개씩 6면체에 그릴 수밖에 없다. 즉 24개가 있어야 한다. void GeometryHelper::CreateCube(shared_ptr geometry) { float w2 = 0.5f; float h2 = 0.5f; float d2 = 0.5f; vector vtx(24); // 앞면 vtx[0] = VertexTextureData{ Vec3(-w2, -h2, -d2.. DirectX 2024. 2. 6. 36. DirectX11 3D 입문_텍스처 CreateQuad로 사각형 만드는 거 까지 했는데 텍스처를 붙여서 UV 좌표를 개입시켜서 뭔가를 할 것이다. 모양을 여러 개 만들어 볼 것이다. 대표적으로 지원해야 되는 모양이 무엇이 있는지를 생각해 보면 사각형 + 큐브 + 구 + 그리드 + 실린더 이 정도가 일반적이다. 실린더는 공식이 복잡하니 스킵하고 나머지 3 총사를 구현해 본다. VertexData에 필요한 걸 이것저것 만들고 나중에 정리하는 식으로 구현을 해보도록 한다. vertexData.h에서 모형에 대한 것만 신경을 써 보자. VertexTextureData라고 uv까지 고려한 것을 넣어 보도록 할 것인데 struct VertexTextureData { Vec3 position = { 0, 0, 0 }; Vec2 uv = { 0, 0 }.. DirectX 2024. 2. 6. 27. 엔진구조_ResourceManager 1. pch.h 헤더에서 #include 제거하기 헤더에 #include를 하면 꼬여서 에러가 날 수 있기 때문에 pch.h에 가서 #include "Game.h" 을 삭제한다. 2. wWinMain에 GGame 적용하기 빌드를 해보면 빌드가 된다. 이제 Game을 전역으로 사용하기 위해 만든 GGame만 이용해야 하는데, GameCoding의 wWinMain에서 보면 Game game; game.Init(hWnd); Game game은 Stack 메모리에 임시적으로 만들어서 사용하는 건데 이제 얘는 사용하면 안 되고 GGame버전을 이용해야 한다. int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ .. DirectX 2024. 1. 22. 20. 프레임워크 제작_Shader 1. Shader, VertexShader, PixelShader 클래스 // VS ComPtr _vertexShader = nullptr; ComPtr _vsBlob = nullptr; vertexShader와 blob을 묶어 줘야 하고, // PS ComPtr _pixelShader = nullptr; ComPtr _psBlob = nullptr; pixelShader와 blob을 묶어줘야 한다. vertexShader와 pixelShader를 따로 만들어줘도 괜찮긴 한데, LoadShaderFromFile이라는 런타임에 실행할 때 shader를 blob이라는 애로 만드는 함수가 있는데, 버텍스셰이더, 픽셀 셰이더가 공용으로 사용하는 애다. 따로 만드는 게 애매하다. 기본적으로 공용 함수는 있기 때문.. DirectX 2024. 1. 3. 5. 텍스쳐와 UV 이번 시간에 한 것 1. IndexBuffer를 이용해 사각형 그리기 2. UV 좌표를 이용해 이미지를 띄우기 1) struct Vertex에서 color 를 uv로 교체 2) CreateGeometry에서 color를 uv로 교체 3) CreateInputLayout에서 COLOR를 TEXCOORD로 교체 4) Shader에서 color : COLOR를 uv : TEXCOORD로 교체 5) Shader에서 texture0, sampler0 선언하고, PS 구현 6) CreateSRV의 이미지 로드하는 부분 구현 7) CreateSRV의 ::CreateShaderResourceView 호출 부 구현 8) Render의 PS 영역에서 _shaderResourceView 세팅, Init에서 CreateSRV.. DirectX 2023. 12. 13. 이전 1 다음