-
16. SimpleMath 실습
사전 작업 Game.cpp에서 void Game::CreateGeometry() { // VertexData - CPU 메모리에 있는 거 // 1 3 // 0 2 { _vertices.resize(4); _vertices[0].position = Vec3(-0.5f, -0.5f, 0.f); _vertices[0].uv = Vec2(0.f, 1.f); // _vertices[0].color = Color(1.f, 0.f, 0.f, 1.f); _vertices[1].position = Vec3(-0.5f, 0.5f, 0.f); _vertices[1].uv = Vec2(0.f, 0.f); // _vertices[1].color = Color(1.f, 0.f, 0.f, 1.f); _vertices[2].posi..
DirectX
2023. 12. 29.
-
12. World 변환 행렬
1. Local Space와 World Space Local Space: 모델이나 캐릭터를 처음 만들 때 사용하는 좌표계입니다. 예를 들어, 캐릭터 모델링에서는 발바닥을 기준으로 하는 것이 일반적입니다. World Space: 3D 환경 내에서 모든 물체가 공유하는 전역 좌표계입니다. 2. Local에서 World로의 변환 World 변환 행렬: Local 좌표에서 World 좌표로 변경하는 데 사용합니다. World 변환 행렬의 역행렬을 사용하면, World 좌표에서 Local 좌표로도 변환할 수 있습니다. 3. Unity 예시: 계층적 변환 객체 배치: Unity에서 'World'라는 이름의 Cube가 0, 0, 0에, 'Sphere'가 2, 0, 2에 배치되고, 'Character'가 5, 0, 5..
DirectX
2023. 12. 20.
-
10. SRT 변환 행렬
가장 기본인 T 부터 다뤄본다. 1. Translation 1x4 4x4 배열이 아니라 벡터가 3개니 1x3 배열을 사용하면 뭐가 문제일까? X = x+a, Y = y+b, Z = z+c 를 만들어 줘야 하는데 [x y z] 배열과 3x3배열의 곱으론 a, b, c를 만들어 줄 수가 없다. 그래서 이렇게 특정 좌표에 M 행렬을 곱해주면 x+a, y+b, z+c 형태가 되어 위치를 이동하게 된다 . 2. Scale X=ax, Y=by, Z=cz 를 만들어 줘야 하는데 벡터 [x,y,z,1]에 M 행렬을 곱해주면 ax, by, cz 형태가 되어 스케일을 조절하게 된다. 주의해야 할 부분 모델링 할 때 캐릭터 중심이 어디로 잡혀있는지가 관건이다. 발로 잡혀 있으면 수치 늘리면 키가 커지고 늘어난다. 하지만 배..
DirectX
2023. 12. 18.