코가손의 블로그
[ Graphics ] 구-직선 충돌 & 평면-직선 충돌 본문
구-직선 충돌
직선의 StartPoint, Dir Vector(Normalized) + 구의 위치, 반지름 알면 접점 구할 수 있음
x : 직선과의 충돌점
c : 구의 위치
o : 직선의 StartPoint
d : u벡터의 크기
u : 직선의 방향벡터
nabla < 0 >> 접점 없음
nabla == 0 >> 접점 1개
nabla > 0 >> 접점 2개(2개 중 StartPoint와 가까운 값 선택)
직선과 구의 접접을 거리에 따라 출력
참고자료
https://en.wikipedia.org/wiki/Line%E2%80%93sphere_intersection
평면-직선 충돌
직선의 StartPoint, Dir Vector(Normalized) + 평면을 이루는 점 v1, v2, v3 있으면 접점 구할 수 있음
- 무한한 평면과의 충돌이기 때문에 face와 충돌하는지 확인하고 싶다면, 충돌위치가 face의 내부인지 외부인지 판단하는 로직 필요
*p가 삼각형 내부에 있는지 외부에 있는지 판별하는 법
p로 인해 나눠지는 작은 삼각형들의 Normal과 faceNormal을 내적한 결과로 판별
내적 결과 < 0, 이라면 p는 삼각형 밖에 위치
'GameDevLog > Graphics' 카테고리의 다른 글
[ Graphics ] 빛의 굴절 (0) | 2023.04.04 |
---|---|
[ Graphics ] Barycentric Coordinates(무게중심 좌표계) (0) | 2023.04.04 |
[ Graphics ] Lighting - Phong Reflection Model (0) | 2023.04.03 |
[ Graphics ] 블룸(Bloom) 효과 (0) | 2023.04.02 |
Comments