11 SRT 변환 행렬

한경식·2024년 12월 17일
post-thumbnail
  • DirectX에서 사용하는 좌표계는 왼손 죄표계를 사용한다

  • Translation

  • Scale

    • 캐릭터를 발을 중심으로 좌표를 잡고 그리는 이유
      • 캐릭터의 중심을 기준
        • 위의 사진처럼 캐릭터의 중심을 기준으로 캐릭터를 그리면 월드에 배치시 월드의 축 위에 캐릭터의 축이 떠있게 된다
        • 이때 캐릭터를 늘리게 되면 중심을 기준으로 발이 월드축에 닿아있게 만들기 위해 복잡한 연산을 통해 위치를 조정해야 한다
      • 발을 중심을 기준
        • 발을 중심으로 캐릭터를 그리면 월드에 배치시 월드 축과 로컬 축이 일치될 뿐더러 캐릭터를 늘렸을 때도 월드축과 로컬축의 위치만 맞추면 된다
  • Rotation

    • 각 축을 기준으로 한 회전 공식이다
    • 원점이 아닌 캐릭터 회전의 문제
      • 원점이 아닌 캐릭터를 회전할 때 캐릭터가 회전하는 것이 아닌 캐릭터의 위치까지도 변화가 된다
      • 이를 유의하여 캐릭터를 그리거나 해야한다
  • Transform 행렬 만들기

    • Scale, Rotation, Transform을 하나의 행렬로 만들어 변화하는 값들을 연산하여 최종 결과물을 만들어 주는 방법을 사용할 것이다
    • 만약 따로 나눠서 연산을 하고 하나로 합칠 경우 연산하는 시간과 메모리등을 더 많이 소비하게 된다
    • 주의
      • 행렬은 S-R-T 순으로 만들어 순서대로 연산해야한다
      • 순서가 바뀌게 되면 우리가 원하는 결과 값이 아닌 엉뚱한 값이 구해진다
      • 스자이공부: 스케일 - 자전 - 이동 - 공전 - 부모행렬 순으로 곱해줘야한다
profile
게임 개발 지망생

0개의 댓글