갬장장이
[Mathematics] 15. 3차원 Line-AABB Intersection
갬장장이
갬장장이의 코드 대장간
갬장장이
전체
오늘
어제
  • 분류 전체보기
    • 게임 연구소
    • 게임 제작
      • Banditors (2024~)
      • Rovenhell (2023)
      • Geophyte (2020~2021)
      • 아드레날린 러시 (2021)
      • Treadmill (2019)
      • 습작들 (2019~)
      • 그 외 (~2018)
    • 개발
      • 언리얼 엔진
      • 수학
      • 네트워크
      • 그래픽스
      • OpenGL
      • DirectX
    • 일상
    • 기타 제작

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • [공지] 블로그 안내

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.
개발/수학

[Mathematics] 15. 3차원 Line-AABB Intersection

2022. 4. 3. 15:04

앞서 우린 어떤 2d 벡터와 각 변이 축과 직사각형의 Collision 판정을 위해 Line-AABB Intersection이라는 방법을 사용할 수 있음을 배웠다.
이전엔 이 방법을 보다 넓은 범위로 확대해, 3차원 직육면체와 선의 충돌을 계산할 수 있도록, 또 물체가 축과 평행한 변을 가진 AABB(Axis Aligned Bounding Box)가 아닌 일반적인 직육면체이더라도 계산할 수 있도록 확장해보자.

일단 2D line aabb intersection을 3D로 변환하는 과정은 다음과 같다.
https://sudhamr.wordpress.com/2019/05/01/week-12/

Week 12 : AABB-Ray Intersection

The next intersection test that we will be looking into is AABB – Ray intersection. This is one of the most widely used applications of intersection techniques since Ray Tracing optimization …

sudhamr.wordpress.com

https://www.scratchapixel.com/lessons/3d-basic-rendering/minimal-ray-tracer-rendering-simple-shapes/ray-box-intersection

A Minimal Ray-Tracer: Rendering Simple Shapes (Sphere, Cube, Disk, Plane, etc.) (Ray-Box Intersection)

A Minimal Ray-Tracer: Rendering Simple Shapes (Sphere, Cube, Disk, Plane, etc.)Ray-Box Intersection Figure 1: equation of a line. The equation of a line can be written as y=mx+b. For the oblique line which equation is y=x-1 we have m=1 and b=-1. In the fol

www.scratchapixel.com


이렇게 얻은 line AABB Intersection 방식은 여전히 직육면체의 각 변이 축과 평행해야 한다는 문제를 가지고 있는데, 때문에 우리는 line AABB Intersection 연산을 하려는 직육면체에 그 직육면체의 TRS Matrix의 역행렬을 곱해주어 각 변이 x,y,z축과 평행한 상태로 만들어야 한다.

(TRS) ^ -1 = S^-1 * R^-1 * T^-1이므로 구하는 과정은 어렵지 않다.
이때 한가지 유용한 참고할 만한 점은

Scaling Matrix는 대각행렬이므로 쉽게 역행렬을 구할 수 있고,
Rotation Matrix는 역행렬이 Transposed와 동일하다는 성질을 가지고 있어 역행렬을 쉽게 구할 수 있으며,
Translation Matrix 역시 이동시킨 방향으로 다시 이동시키면 되므로 역행렬을 쉽게 구할 수 있다는 점이다.

저작자표시 비영리 변경금지 (새창열림)

'개발 > 수학' 카테고리의 다른 글

[Mathematics] 17. Axis-Angle Rotation (Rodrigues formula)  (0) 2022.04.08
[Mathematics] 16. Plane Intersection & Frustum Culling  (0) 2022.04.03
[Mathematics] 13. 선형변환의 기하학적 의미  (0) 2022.02.21
[Mathematics] 12. TRS Matrix  (0) 2022.02.21
[Mathematics] 11. Translation  (0) 2022.02.21
'개발/수학' 카테고리의 다른 글
  • [Mathematics] 17. Axis-Angle Rotation (Rodrigues formula)
  • [Mathematics] 16. Plane Intersection & Frustum Culling
  • [Mathematics] 13. 선형변환의 기하학적 의미
  • [Mathematics] 12. TRS Matrix
갬장장이
갬장장이
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.