DirectXCollision 2

[책공부] Picking + chap 17 연습 문제

(사실 이해했는지 모르겠다. 어렴풋이 느껴질 뿐... 그래도 그 느낌을 정리한다.) 1. Picking - 화면을 마우스로 클릭해서 model을 선택하는 것을 목표로 한다. - 마우스 입력은 Client Area의 2D 좌표로 받고, Model은 App 상에서 3D로 존재하고, 좌표계도 다르다. (Client Area -> World Coordinates) - 아이디어는 NDC위의 점을 클릭한 것을, 원점(카메라 위치)에서 View Frustum의 Projection Screen위의 한 점으로 지나가는 반직선(Ray)으로 변환하는 것이다. - 카메라 위치에서 Projection Screen을 지나 View Frustum을 가로지르는 반직선(Ray)과, Model의 충돌을 적절한 좌표계 변환과 + Dire..

Programming/D3D12 2024.02.22

[책공부] Instancing / Frustum Culling + chap 16 연습 문제

(사실 이해했는지 모르겠다. 어렴풋이 느껴질 뿐... 그래도 그 느낌을 정리한다.) 1. Instancing - 이전 챕터에서 배운 Dynamic Indexing과 Texture Array와 StructuredBuffer를 함께 이용한다. - 똑같은 물체를 여러 개 그리기 위해, App에서 API에게 Drawcall을 여러 번 요청하는 것보다 좋은 방법이라고 한다. - Vertex Buffer와 Index Buffer를 Input - Assembly에 걸어 놓고, DrawIndexedInstanced를 호출할 때, 두 번째 매개변수에 1 이외에 값을 넣는다면, - Vertex Shader의 SV_InstanceID 시멘틱에서 횟수를 알려주면서 여러번 삼각형을 그리게 된다. - 이걸 일종의 Index로 이..

Programming/D3D12 2024.02.21