전체 글

컴공과 학부생의 이야기
·Riley-Engine
물체의 이동, 크기, 회전을 적용함에 따라 AABB가 이에 맞게 변환하는 것을 구현할 생각이다. AABB는 center와 extents를 통해서 구성되는데, center에서 경계면까지의 거리를 extents라고 한다. AABB는 Axis-Aligned Bounding Box라는 이름에 맞게 기저 축에 정렬된 충돌 박스이다. 따라서 물체가 회전하게 된다면, AABB는 회전을 하는 것이 아닌 회전에 맞게 크기가 변화된다. 이 부분에서 예상치 못한 문제점이 발생한다.inline void XM_CALLCONV BoundingBox::Transform(BoundingBox& Out, FXMMATRIX M) const noexcept{ // Load center and extents. XMVECTOR v..
·Riley-Engine
AABB(Axis Aligned Bounding Box)축 정렬 경계 상자라고 직역이 가능하지만, 보통 AABB라고 부른다. 그렇다면 해당 상자를 어떻게 만드는지에 대해 의문일 것이다.필요한 재료는 두 가지이다.$c$ : 상자의 중점(center)$e$ : 중점에서 각 면까지의 거리들(extents)$$c = 0.5(v_{min}+v_{max})\tag{1}$$$$e = 0.5(v_{max}-v_{min})\tag{2}$$두 값을 구하기 위해서는 우리는 $v_{min}$ 과 $v_{max}$ 를 알아야한다. 기본적으로 물체를 만들 때 vertex 값을 이용해서 물체를 만들게 된다. 이것을 이용해서 AABB의 상자를 만들 수 있다. 물체를 그리는 공간은 3차원 공간(x, y, z)으로 이루져 있다. 따라서..
·Riley-Engine
해당 값 오류는 두 번째 Render()를 할 때 발생하였다. Viewport를 설정할 때 발생한 오류로 파악되었다. 왜 두번째 Render()를 할 때 발생하였는지도 알 수 있었다.engine->SetSceneViewportData(sceneViewportData);engine->Run();engine->GetCamera()->SetAspectRatio(sceneViewportData.GetWidth() / sceneViewportData.GetHeight());engine->GetBackbufferRTV()->Clear(engine->GetDeviceContext(), clearDarkBlue);내 코드에서 engine->Run()을 하고나서..
Koala Jung
koala-tech-blog