Software/DirectX
-
22. 입방체 매핑 ( Cube Mapping )Software/DirectX 2024. 5. 24. 10:51
Table of Contents1. 선택 알고리즘(Picking Algorithm)2. 화면좌표계에서 투영 좌표계(NDC)로의 변환3. 월드 좌표계에서 로컬 좌표계로 선택 반직선 변환4. 반직선 대 메쉬(Ray to Mesh) 교차 판정1. 선택 알고리즘(Picking Algorithm)게임에서 필수적으로 구현해야할 알고리즘이 선택 알고리즘이다.이제까지의 투영변환과는 반대로 2차원 화면에서 3차원 공간으로 변환이 필요하다.선택 알고리즘의 순서도는 다음과 같다1. 클릭한 화면의 위치좌표에서 3차원 시야 공간의 한 점으로 향하는 반직선 (Picking Ray)를 계산한다.2. 시야 공간에서의 반직선을 월드좌표계로, 다시 물체 각각의 로컬좌표계로 변환시킨다.3. 각 메쉬의 로컬 좌표상에서 반직선과의 충..
-
21. 인스턴싱 (Instancing)과 절두체 선별 (Frustum Culling)Software/DirectX 2024. 5. 24. 10:23
Table of Contents1. 하드웨어 인스턴싱(Hardware Instancing)2. 인덱스 인스턴싱(Index Instancing)3. 경계 조건(Bounding Condition) 3.1 경계 상자(bounding box) 3.2 경계 구(bounding sphere) 3.3 절두체(Frustum)4. 교차 판정 4.1 절두체 대 구 교차 4.2 절두체 대 AABB 교차 4.3 절두체 컬링 1. 하드웨어 인스턴싱(Hardware Instancing)인스턴싱(Instancing)은 한 장면에서 같은 물체를 여러 번 그리는 것을 말한다.같은 물체지만 위치나 방향, 재질, 텍스쳐, 축척 등을 다르게 해서 다른 물체인 것처럼 표현하는 방법이다.인스턴싱의 가장 큰 목표는 그리기 횟수(API..
-
20. 1인칭 카메라Software/DirectX 2024. 5. 24. 10:21
Table of Contents1. 카메라 클래스2. 카메라 변환3. 시야 행렬 구축(View matrix)4. 카메라 변환 적용1. 카메라 클래스카메라 클래스는 두 가지 중요한 정보를 저장한다.하나는 카메라 좌표(카메라 원점, x,y,z 축 벡터와 up벡터, lookat 벡터)다른 하나는 View Frustum(시야각, 가까운 평면 거리, 먼 평면 거리) 속성class Camera{public: Camera(); ~Camera(); // 월드 좌표 카메라 위치 정보 DirectX::XMVECTOR GetPosition()const; DirectX::XMFLOAT3 GetPosition3f()const; void SetPosition(float x, float y, flo..