본문 바로가기
computer science/3d graphics

왜 정규화 벡터를 사용하는가

by 망고먹는 개발자 2021. 7. 26.

정규화 벡터를 사용하는 이유

http://stackoverflow.com/questions/10002918/what-is-the-need-for-normalizing-a-vector

http://stackoverflow.com/questions/2304634/why-do-we-need-a-unit-vector-in-other-words-why-do-we-need-to-normalize-vector

 

- 필수적으로 정규화 벡터를 사용할 필요는 없다. 그러나 정규화 벡터는 식을 굉장히 축소시켜주고, 따라서 API 또한 매우 간단해진다. 

 만약 u,v 두 벡터의 각도를 구한다고 생각해보자. 만약 두 벡터가 크기가 1인 unit 벡터라고 하면, 둘을 그냥 arccos(u*v)를 취하면 된다. 그러나 두 벡터가 unit 벡터가 아닌 경우에는 arccos(u*v/(|u||v|))를 취해야 한다. 이 경우에는 결국 u와 v의 크기를 구해야 한다.

 

- 벡터는 방향과 크기로 정의된다. 벡터가 정규화 될때에는 방향이 아닌 크기만 변한다. 그래서 방향이 같은 벡터들을 정규화하면 모두 같은 벡터가 된다.

 

- 벡터를 계산할 때에 크기를 제외하고 방향만 고려하고 싶을 때 정규화 벡터를 사용한다. 벡터의 magnitude 즉 크기는 스칼라값으로, 1은 곱의 항등원이기 때문에 크기가 1인 벡터는 여러가지 계산을 할 때에 결과 벡터의 크기가 식의 결과를 왜곡(skew)하지 않도록 돕는다.

반응형

댓글