glm 기능들
사칙연산
to_string(vec3 v)
벡터 스칼라 곱
length(vec3 v)
normalize(vec3 v)
- v의 unit vector
- 길이가 0.0인 벡터인 경우 에러 발생 가능
dot(vec3 v1, vec3 v2)
- 벡터의 dot product
- dot product의 결과는 스칼라
cross(vec3 v1, vec3 v2)
- 벡터의 cross product
- cross product의 결과는 벡터
- cross product 결과의 길이를 2로 나누면 세 점을 이은 삼각형의 넓이
vec4(vec3 v, 1.0f)
vec3 초기화
- vec3 v = {1.0f, 2.0f, 3.0f};
- vec3 v2 = vec3(1.0f);
vec3 멤버변수
DirectXMath
개요
포인트와 벡터
- point는 4번째 원소가 1.
- vector는 4번째 원소가 0.
- 따라서 포인트 + 벡터 = 포인트, 포인트 - 포인트 = 벡터
행렬
- glm 행렬은 comlumn-major matrix 이다.
- mat2 mat3, mat4 타입으로 선언한다
- 초깃값은 identity matrix
- 전치행렬
- 역행렬
- 이동
- 회전 행렬
- rotate(radian, vec3);
- vec3를 회전 축으로 radian만큼 회전
- 크기 변환
알아 두기
- 회전행렬의 transpose는 역행렬과 같다.
- 벡터의 회전에서 행렬의 translate 부분은 (0.0,0.0,0.0,1.0)으로 초기화 해주어야 한다.
개요
XMVector
- SIMD 가속을 받기 좋은 형태
- 그래서 연산 전 XMVector로 변환해주고 연산함
simplemath
- xmvector로 변환하고 다시 변환하는 과정이 미리 구현되어 편하게 사용 가능
기능들
- Matrix namespace
- CreateScale()
- CreateRotationY()
- CreateRotationX()
- CreateTranslation()
- 행렬 메서드
- Translation(Vector3)
- Invert()
- Transpose()
- Vector
- Vector4 namespace
Leave a comment