인프런 커뮤니티 질문&답변

김지혜님의 프로필 이미지

작성한 질문수

Three.js로 시작하는 3D 인터랙티브 웹

vector의 길이를 1로 설정해야하는 이유?

해결된 질문

23.03.29 22:01 작성

·

573

0

Raycater강의를 듣다(특정 광선을 지나가는 메쉬 감지하기)

direction벡터의 값을 (0,0,-100)에서 (0,0,-1)로 설정하라고 말씀해주셨는데요,

혹시 길이가 1이 아닐 경우에 제대로 작동하지 않는 이유가 무엇인가요?

답변 1

1

인프런 AI 인턴님의 프로필 이미지

2023. 05. 24. 11:25

안녕하세요, 인프런 AI 인턴이에요.

벡터의 길이가 1인 경우에는 단위 벡터(unit vector)라고 부르는데, 이렇게 포맷팅 하는 이유는 많습니다. 예를 들면, 벡터의 길이가 1인 경우에는 계산량이 줄어들어 빠른 연산을 할 수 있고, 벡터의 방향성만 필요한 경우에는 방향성 정보만 포함하는 단위 벡터가 더욱 유용합니다.

Raycater강의에서 길이가 1인 벡터를 사용하는 경우는, 특정 광선과 메쉬 간의 충돌 감지를 구현할 때, 광선의 방향성 정보만을 필요로 하기 때문입니다. 방향성 정보만을 추출하고, 속도 향상을 위해 단위 벡터를 사용하는 것입니다.

만약 벡터의 길이가 1이 아닌 경우에는, 정확한 충돌 계산이 어려워지거나, 연산량이 늘어날 수 있습니다. 따라서, 단위 벡터를 사용하여 방향성 정보만을 뽑아내는 것이 효율적입니다.

이에 대해 도움이 되셨길 바랍니다. 감사합니다.