반사벡터가 무엇일까?

박승우·2024년 5월 31일
post-thumbnail

자 서른 아홉 번째 키워드인 반사벡터을 알아 볼 것이다.

이 키워드는 게임에서 튕겨나가는 오브젝트가 어디로 튕겨나가야 하는지 계산할때 사용하는
게임 수학분야라서 식과 방법을 알아보았다.

반사벡터가 뭔데요?

반사 벡터(reflection vector)는 물리와 컴퓨터 그래픽스에서 물체에 빛이 반사되는 방향을 나타내는 벡터이다. 반사 벡터는 빛의 입사 벡터와 반사면의 법선 벡터를 사용하여 계산된다.
이를 이해하려면 다음 개념들을 이해하는 것이 필요하다.

  1. 입사 벡터 (Incident Vector, 𝐼) - 이는 빛이 물체에 닿기 전의 방향을 나타내는 벡터이다. 일반적으로 표면에 수직인 법선 벡터와 만나는 점에서의 방향을 나타낸다.

  2. 법선 벡터 (Normal Vector, 𝑁) - 이는 반사면(Ex: 거울이나 물체 표면)에 수직으로 튀어나온 벡터이다. 법선 벡터는 반사면의 기울기와 관계없이 항상 반사면에 수직이다.

  3. 반사 벡터 (Reflection Vector, 𝑅) - 이는 빛이 반사된 후의 방향을 나타내는 벡터이다.

공식 설명

반사 벡터를 계산하는 공식은 𝑅 = 𝐼 − 2(𝐼⋅𝑁)𝑁 이다.

𝑅 은 반사 벡터
𝐼 은 입사 벡터
𝑁 은 법선 벡터
𝐼⋅𝑁 은 입사 벡터와 법선 벡터의 내적 이다.

  1. 입사 벡터의 방향
    빛이 어떤 각도로 물체에 닿으면, 그 방향을 입사 벡터 𝐼로 나타낸다.

  2. 법선 벡터와 내적
    입사 벡터 𝐼와 법선 벡터 𝑁 의 내적을 계산한다.
    이는 입사 벡터가 법선 벡터 방향으로 얼마나 기울어져 있는지를 나타낸다.

  3. 법선 벡터로의 투영
    위에서 계산된 내적 값에 법선 벡터 𝑁 을 곱한다. 이 과정은 입사 벡터가 법선 벡터 방향으로 얼마나 기울어져 있는지를 구체적인 벡터 형태로 나타낸다.

  4. 반사 벡터 계산
    입사 벡터에서 2배의 법선 벡터 투영을 빼면 반사 벡터 𝑅이 된다. 이 과정은 입사 벡터를 법선 벡터에 대해 대칭 이동시켜 반사 벡터를 얻는 것이다.

공식에 대한 예시

입사 벡터 I=(1,−1,0)이고 법선 벡터 N=(0,1,0)인 경우

  • 내적 계산 : I⋅N=1×0+(−1)×1+0×0=−1

  • 법선 벡터 투영 : −1×(0,1,0)=(0,−1,0)

  • 반사 벡터 계산 : (1,−1,0)−2×(0,−1,0)=(1,−1,0)−(0,−2,0)=(1,1,0)

따라서, 반사 벡터는 (1,1,0)이다.

결론 - 느낀 점

역시 벡터는 어렵다. 충분히 보고 이해를 해야 넘어가야 할것같아 몇시간동안 찾아보고 이해하려고
공부했다.

이번 키워드로 무언가 반사가 된다고 하면 바로 떠오를 것 같다.

profile
게임을 좋아하는 사람 입니다!

0개의 댓글