새소식

인기 검색어

게임 개발/그래픽스

좌표계 변환

  • -

기저 벡터(Basis Vectrors)의 변환

i,j,k를 변환시킨다는 것은 어떻게 보면, 좌표계 자체를 변환시킨다는 의미로 볼 수도 있다.

변환의 구성

1. 여러 변환을 한번씩 한번씩 한다고 생각할 수 있음

2. 다른 방식으로는 공간 그 자체를 한번에 변환시킨다고 생각할 수도 있음

참고로 변환의 순서가 중요하다. 아래 a,b그림을 보면 같은 변환을, 순서만 바꿔서 했더니 결과가 다르다.

내가 연산한 순서가 내가 의도한 결과를 내는지 잘 확인하는것이 중요하다.

좌표계 변환

벡터 사례

프레임==좌표계==스페이스==레퍼런스 프레임

전부 같은 의미

포인트 사례

프레임 B에서 프레임 A로 갔다가 PA로 가는 것을 표현한 식.

아주 간단한 예제(이해를 돕기위한)

프레임A와 프레임 B가 높이만 10차이나게 있다고 생각해보자.

결국 프레임 B를 프레임 A에 겹치려면 어떻게 해야 할까?

좌표계를 정확히 겹치려면 어떻게 해야 할까?에 대한 고민이다.

행렬로 표현

좌표계 변환 행렬의 결합 법칙 (Associativity)

이제는 좌표계가 3개 있는경우를 생각해보자.

그럼 이것을 어디에 사용할까?

FPS 게임을 만든다고 해 보자.

FPS 게임에서 에임 점을 어떤 물체에 대고 쏜다고 해 보자.

그 에임의 총알이 어떤 물체에 맞았는지 어떻게 계산할까?

에임이 월드좌표계 어디에 맞는지 계산할때 이런 방식을 사용해서 계산할 수 있다. (이 방식의 역행렬, 역변환을 이용)

 

좌표계 변환 행렬의 역행렬

프레임 끼리도 역변환이 가능하다.

화면상의 어떤 픽셀을 클릭했을때 이게 원래 월드 좌표계 어디인지 역으로 계산할 수 있다.

변환 행렬 vs 좌표계 변환 행렬

컴퓨터 그래픽스에서는 많은/여러 좌표계를 동시에 사용한다.

왜일까?

이게 사람이 생각하기가 편하기 때문이다.

만약 사람의 관절: 어깨, 팔, 다리, 골반 등을 계산할때 몸에 달라붙어있는 기준점으로부터의 각도로 생각하면 편하다.

즉, 어깨는 몸통에서 몇도 기울었는지, 팔은 어깨에서 몇도 기울었는지, 손목은 팔에서 몇도 기울었는지, 손가락은 손에서 몇도 기울었는지 이런식으로 계산하는게 사람이 생각하기 편하다.

 

따라서 오늘 배운 것은

어떤 벡터를 변환하는 것이

좌표계 자체를 변환하는 것이라고 생각할 수 있다는 것을 배운 것이다.

'게임 개발 > 그래픽스' 카테고리의 다른 글

조명(GLM행렬), 노멀 벡터 변환  (1) 2023.11.22
행렬 (GLM)  (1) 2023.11.22
애파인 변환 (Affine Transformation)  (0) 2023.11.21
회전  (0) 2023.11.19
선형 변환 (Linear Transformation)  (0) 2023.11.18
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.