외적

ㅋㅋ·2022년 7월 12일
0

게임수학강의

목록 보기
18/20
  • 외적

3차원 벡터에서 이뤄지는 연산
결과값으로 벡터가 나옴

u=(ux,uy,uz), v=(vx,vy,vz)u=(u_x,u_y,u_z),\ v=(v_x,v_y,v_z)
u×v=(uyvzvyuz, uzvxvzux,uxvyvxuy)u\times v=(u_yv_z-v_yu_z,\ u_zv_x-v_zu_x,u_xv_y-v_xu_y)

분배 법칙만 성립하고 교환, 결합 법칙이 성립하지 않음

u×v=v×uu \times v = -v \times u
곱 순서가 바뀔시 반대 방향으로 벡터가 만들어짐

한 벡터와 같은 방향이나 반대 방향(평행) 벡터를 외적하면 영벡터가 나옴
=>
외적 시 벡터 하나를 다른 벡터의 평행한 부분과 수직인 부분 두 개로 나누어 계산 가능
=>
수직인 부분 벡터와의 사잇각이 작을수록 수직인 부분이 줄어들어 외적의 결과값이 작아짐
사잇각이 클수록 수직인 부분이 늘어나 외적의 결과값이 커짐
=>
외적한 벡터의 크기는 사잇각의 사인함수에 비례

u×v=(uyvzvyuz, uzvxvzux,uxvyvxuy)u\times v=(u_yv_z-v_yu_z,\ u_zv_x-v_zu_x,u_xv_y-v_xu_y)
외적한 벡터에 u 또는 v를 내적하면 언제나 0
=>
외적한 벡터는 두 벡터가 만드는 평면에 항상 직교
외적한 벡터를 노멀 벡터라고 함
=>
v×uv \times u는 반대 방향으로 직교하는 벡터
=>
외적 결과는 오른손의 법칙 => 반시계 방향 오른손 좌표계 엄지 방향


  • 외적을 통한 좌우 판별

시선 벡터와 다른 오브젝트의 벡터를 외적 시

결과값에 따라 오른쪽, 왼쪽을 판단할 수 있음

오른쪽에 있다면 결과값이 아래를 향하고, 왼쪽에 있다면 결과값이 위를 향함

이를 쉽게 판별하기 위해 Up 방향 벡터와 내적을 진행하여 0보다 크면 왼쪽,

0보다 작다면 오른쪽으로 판별 할 수 있음


  • 벡페이스 컬링

삼각형 메쉬는 앞 면과 뒷 면이 존재한다.

이 때 성능 향상을 위해 한면만 색칠하는데,

이 때 앞 면은 정점 배열 순서를 가지고 판단한다.

낮은 인덱스를 기준으로 순서가 시계 방향인지 반시계 방향인지 판단하여 정면 판단

카메라의 방향과 정면의 방향 벡터를 내적해 판단 (0보다 작다면 색칠)


  • 내적과 외적의 활용

내적은 직교, 외적은 평행 판별
내적은 cos, 외적은 sin에 비례
내적은 앞뒤, 외적은 좌우 판별
내적은 투영 벡터, 외적은 노멀 벡터 생성

0개의 댓글