전체 글

컴공과 학부생의 이야기
·Riley-Engine
shadow mapping을 위해 DSV resource를 SRV에 바인딩하여 작업을 진행하였다. 다만 문제가 발생한 부분은 물체의 깊이 값을 비교할 때 발생하였다. Shadow Mapping을 통하여 그림자를 그리는 원리는 단순한다.1. Shadow Viewport로 설정하여 Shadow Mapping을 위한 '조명' 시점의 Depth Map을 그린다.2. 그린 Depth Map을 Lighting HLSL에 연결한다.3. 가져온 [1] Depth Map의 깊이값과 [2] 현재 Lighting을 그리고 있는 물체의 '조명' 시점에서의 깊이 값을 비교한다.4. 만약, 현재 그리고 있는 물체의 '조명' 시점의 깊이 값이 클 경우 그림자를 인식한다. 이것은 Depth Map을 그릴때 조명이 물체 뒤에 가려진 ..
·Riley-Engine
참고https://github.com/SanderMertens/ecs-faq?tab=readme-ov-fileECS에 대한 기본 지식ECS는 OOP와 어떻게 다른가?OOP에서 가장 중요한 것은 Inheritance(상속)인 반면, ECS에서 가장 중요한 것은 Composiotion(구성)이다.OOP는 데이터의 캡슐화를 추구하고 ECS는 POD(plain old data) 객체를 보여주는 것을 추구한다.OOP는 behavior와 함께 데이터를 같이 두는 것을 중시하고 ECS는 behavior로부터 데이터를 분리하는 것을 중시한다.OOP 객체 인스턴스는 단일 정적 타입이지만, ECS의 entities는 다중 타입을 가지며, dynamic하게 변화하는 components를 가질 수 있다.ECS와 Entity-..
·Riley-Engine
m_swapChain->ResizeBuffers(0, m_width, m_height, DXGI_FORMAT_UNKNOWN, 0);윈도우 화면을 반응형으로 구현하기 backBuffer의 사이즈를 그에 맞게 바꾸기 위해 ResizeBuffers 함수를 이용하였다. 다만 해당 함수를 통해 RTV를 생성한 결과 처음 설정한 사이즈와 똑같은 사이즈를 출력함으로써 문제가 발생하였다. 해당 문제로 인해 DepthStencilView의 사이즈와 RenderTargetView의 사이즈가 달라서, 윈도우 창 크기 변경 시 화면이 정상적으로 출력되지 않는 오류가 발생하였던 것이다.ID3D11Texture2D* backBuffer = nullptr;ID3D11RenderTargetView* rtv = nullptr;HR(m..
Koala Jung
koala-tech-blog