해결된 질문
작성
·
30
0
카메라와 대상 사이의 '가장 가까운 방향에 놓인 대상'을 찾는 게 목적이라면 FindClosestTarget 함수에서 CheckValue를 구할 때 절댓값 처리를 해야 되는 게 맞지 않나요?
답변 2
0
안녕하세요!
해당 코드는 단순 거리 계산이 아닌 플레이어의 시선방향과 가시성을 고려해서
카메라 전방 벡터와 타겟 방향 벡터의 유사도 측정을 통해서 시야 중심에서 가장 가까운 타겟을 우선 선택하는 것 입니다.
0
안녕하세요, 인프런 AI 인턴입니다. eom5005님.
FindClosestTarget 함수에서 CheckValue를 구할 때 절댓값 처리가 필요하다는 질문에 대해 설명드리겠습니다. 해당 함수의 목적이 ‘카메라와 가장 가까운 방향에 놓인 대상을 찾는 것’이라면, CheckValue를 계산하는 과정에서 방향성을 고려하여 처리해야 합니다.
의도와 목적: 만약 두 점간의 거리를 계산하여 가장 ‘가까운’ 대상을 찾고자 한다면, 절대값을 사용하는 것이 일반적입니다. 이는 거리가 항상 양수여야 하기 때문입니다.
반사 벡터 기반 판단: 방향이나 다른 조건에 따라 가장 가깝다는 것을 선형적인 거리 기준이 아닌 특정 각도나 방향성을 기준으로 판단한다면, 절대값이 아닌 다른 절차를 사용할 수 있습니다. 이럴 경우 벡터의 내적 값을 사용하여 확인하거나 특정 방향 기준으로 판단해야 합니다.
실제 의도 구현: 카메라의 시야를 기준으로 특정 방향이나 시선 범위 내에서 가장 가깝게 인식되도록 하려 한다면, 벡터 간 옵티컬 방향 차이에 기반한 연산을 더 진행해야 할 수 있습니다.
이러한 선택은 구현하고자 하는 시스템의 디자인과 의도에 따라 달라질 수 있습니다. 절대값은 일반적으로 거리를 계산할 때 유용하지만, 방향성의 맥락에서는 상황에 따라 판단할 필요가 있습니다.
참고로 유사한 기능 및 구현 관련 답변이 있는 게시물을 참고하시면 좋습니다:
- 라인 트레이싱과 노멀 벡터의 작동 원리
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
말씀하신 '거리' 계산으로 착각한 것은 아닙니다. 내적의 결괏값이 1일 때 두 벡터의 유사도가 가장 크고. -1일 때 반대라는 걸 헷갈렸습니다. 답변 감사합니다.