fnwinter.github.io blog

unity math

Unity 수학

좌표계

  • 유니티는 왼손 좌표계 (엄지 x, 검지 y, 중지 z)
  • z축이 왼손 좌표계는 멀수록 +
  • 로컬 좌표계
    • 모델 내부의 상대 좌표
  • 월드 좌표계
    • 씬에서 물건의 위치
  • 스크린 좌표계
    • 카메라에 투영 된 2D 스크린 좌표
    • 카메라의 WorldToScreenPoint로 알 수 있음
  • 극 좌표계
    • (r, theta) = (r * cos(t), r * sin(t))
    • r 은 거리이므로 = (sqrt(x^2 + y^2), atan(y, x))
    • 극 좌표계로 렌즈의 왜곡을 보정 할 수 있다.
  • 구면 좌표계
    • (거리, 방위각, 양각) 로 구성

벡터

  • 벡터의 크기 magnitude
    • (x,y,z) = sqrt(x^2 + y^2 + z^2)
    • norm, ||v|| 으로 표기
  • 내적 inner product
    • 같은 원점을 지나는 A1(x1,y1,z1) 과 A2(x2,y2,z2) 의 내적은
    • x1 * x2 + y1 * y2 + z1 * z2 = ||A1|| * ||A2|| * cos(θ)
    • 스칼라 값을 갖고 두 벡터의 각도를 역으로 알 수 있음
    • 벡터 a와 벡터 b의 내적 관계
      • a와 b가 완전히 같은 방향일 때 a · b = ||a|| ||b|| (cosθ = 1)
      • θ 가 90도 보다 작으면, a · b < ||a|| ||b||
      • a와 b가 수직이면, a · b = 0
      • 0 가 90~180 도면, a · b < 0 이고, |a · b| < ||a|| ||b||
      • a와 b가 반대 방향이면, a · b = -||a|| ||b||
  • 외적 outer product
    • 공간상의 외적은 원점을 지나는 x, y에 수직이고, ||x|| * ||y|| * sin(θ) 의 크기를 갖는다.
    • 연산 후 벡터가 나와서 벡터곱, 크로스곱, x⊗y 라고 표시한다.
    • 두 벡터가 이루는 평면의 수직을 찾을 때 쓰인다.
    • 어떤 면의 외적을 찾고, 외적과 카메라의 방향을 내적해서 a · b = ||a|| ||b|| 면 카메라의 뒷면이라 안보이는 걸 알 수 있다.
comments powered by Disqus