SlideShare a Scribd company logo
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
cos
𝐴𝐵
𝐴
𝐵
𝐶 𝐴𝐶
𝐴𝐵
𝐴
𝐵
𝐶
𝐴𝐶
𝐴𝐵 ∙ 𝐴𝐶 > 0
𝐴𝐵 ∙ 𝐴𝐶 < 0
𝑂𝐵 𝑂𝐴
𝑂𝐴′
𝐴
𝐵
𝑂 𝐴′
𝑂𝐴 ∙ 𝑂𝐵 𝑂𝐴 𝑂𝐵 cos𝜃
𝐴
𝐵
𝑂 𝐴′
𝑂𝐴′ 𝑂𝐴 cos𝜃
𝑂𝐵 ෢
𝑂𝐵
𝐴
𝐵
𝑂 𝐴′
𝑂𝐴′ 𝑂𝐴 cos𝜃
෢
𝑂𝐵
𝑂𝐵
||𝑂𝐵||
𝑎 = (𝑎𝑥, 𝑎𝑦, 𝑎𝑧) b = 𝑏𝑥, 𝑏𝑦, 𝑏𝑧
𝑎 × 𝑏 = (𝑎𝑦 ∙ 𝑏𝑧 − 𝑏𝑦 ∙ 𝑎𝑧, 𝑎𝑧 ∙ 𝑏𝑥 − 𝑏𝑧 ∙ 𝑎𝑥, 𝑎𝑥 ∙ 𝑏𝑦 − 𝑏𝑥 ∙ 𝑎𝑦)
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
𝑎 × 𝑏 × 𝑐
𝑎 × 𝑏 × 𝑐
𝑂𝐴 × 𝑂𝐴 × 𝑂𝐵
𝑂
𝐴
𝐵
𝑂𝐴 × 𝑂𝐵
𝑂𝐴 × 𝑂𝐴 × 𝑂𝐵
충돌 알고리즘(collision detection algorithms)
𝑆1이 𝑆2일
𝑆1𝑚𝑎𝑥 𝑆2𝑚𝑖𝑛 고 𝑆2𝑚𝑎𝑥 𝑆1𝑚𝑖𝑛
𝑆1
𝑆2
𝑆1𝑚𝑖𝑛 𝑆1𝑚𝑎𝑥
𝑆2𝑚𝑎𝑥
𝑆2𝑚𝑖𝑛
3D AABB Algorithm - YouTube
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
AABB 정밀 충돌 감지 - YouTube
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
𝑆1𝑚𝑖𝑛 𝑆1𝑚𝑎𝑥
𝑆2𝑚𝑎𝑥
𝑆2𝑚𝑖𝑛
(𝑆2𝑚𝑎𝑥 − 𝑆1min) ∙ Ԧ
𝑣 (𝑆1𝑚𝑎𝑥 − 𝑆2m𝑖𝑛) ∙ Ԧ
𝑣
Ԧ
𝑣
(𝑆2𝑚𝑎𝑥 − 𝑆1min) ∙ Ԧ
𝑣
𝑆1 𝑆2
Ԧ
𝑑 Ԧ
𝑣
𝑆1𝑚𝑖𝑛 𝑆1𝑚𝑎𝑥
𝑆2𝑚𝑎𝑥
𝑆2𝑚𝑖𝑛
(𝑆2𝑚𝑎𝑥 − 𝑆1min) ∙ Ԧ
𝑣 (𝑆1𝑚𝑎𝑥 − 𝑆2m𝑖𝑛) ∙ Ԧ
𝑣
Ԧ
𝑣
(𝑆2𝑚𝑎𝑥 − 𝑆1min) ∙ Ԧ
𝑣
𝑆1min 𝑆2𝑚𝑎𝑥 Ԧ
𝑣
𝑆1𝑚𝑖𝑛 𝑆1𝑚𝑎𝑥
𝑆2𝑚𝑎𝑥
𝑆2𝑚𝑖𝑛
(𝑆2𝑚𝑎𝑥 − 𝑆1min) ∙ Ԧ
𝑣 (𝑆1𝑚𝑎𝑥 − 𝑆2m𝑖𝑛) ∙ Ԧ
𝑣
Ԧ
𝑣
𝑆1𝑚𝑖𝑛 𝑆1𝑚𝑎𝑥
𝑆2𝑚𝑎𝑥
𝑆2𝑚𝑖𝑛
(𝑆2𝑚𝑎𝑥 − 𝑆1min) ∙ Ԧ
𝑣 (𝑆1𝑚𝑎𝑥 − 𝑆2m𝑖𝑛) ∙ Ԧ
𝑣
(𝑆1𝑚𝑎𝑥 − 𝑆2m𝑖𝑛) ∙ Ԧ
𝑣
𝑆1𝑚𝑎𝑥 𝑆2m𝑖𝑛 Ԧ
𝑣
Ԧ
𝑣
𝑆1𝑚𝑖𝑛 𝑆1𝑚𝑎𝑥
𝑆2𝑚𝑎𝑥
𝑆2𝑚𝑖𝑛
(𝑆2𝑚𝑎𝑥 − 𝑆1min) ∙ Ԧ
𝑣 (𝑆1𝑚𝑎𝑥 − 𝑆2m𝑖𝑛) ∙ Ԧ
𝑣
𝑆1min 𝑆2𝑚𝑎𝑥 Ԧ
𝑣
𝑆2m𝑖𝑛 𝑆1𝑚𝑎𝑥 Ԧ
𝑣
Ԧ
𝑣
𝑆1𝑚𝑖𝑛 𝑆1𝑚𝑎𝑥
𝑆2𝑚𝑎𝑥
𝑆2𝑚𝑖𝑛
(𝑆2𝑚𝑎𝑥 − 𝑆1min) ∙ Ԧ
𝑣 (𝑆1𝑚𝑎𝑥 − 𝑆2m𝑖𝑛) ∙ Ԧ
𝑣
𝑆1min 𝑆2𝑚𝑎𝑥 Ԧ
𝑣
𝑆2m𝑖𝑛 𝑆1𝑚𝑎𝑥 Ԧ
𝑣
Ԧ
𝑣
𝑆1𝑚𝑖𝑛 𝑆1𝑚𝑎𝑥
𝑆2𝑚𝑎𝑥
𝑆2𝑚𝑖𝑛
(𝑆2𝑚𝑎𝑥 − 𝑆1min) ∙ Ԧ
𝑣 (𝑆1𝑚𝑎𝑥 − 𝑆2m𝑖𝑛) ∙ Ԧ
𝑣
𝑆1min 𝑆2𝑚𝑎𝑥 Ԧ
𝑣
𝑆2m𝑖𝑛 𝑆1𝑚𝑎𝑥 Ԧ
𝑣
Ԧ
𝑣
𝑆1𝑚𝑖𝑛 𝑆1𝑚𝑎𝑥
𝑆2𝑚𝑎𝑥
𝑆2𝑚𝑖𝑛
(𝑆2𝑚𝑎𝑥 − 𝑆1min) ∙ Ԧ
𝑣 (𝑆1𝑚𝑎𝑥 − 𝑆2m𝑖𝑛) ∙ Ԧ
𝑣
𝑆1 𝑆2
𝑆1min 𝑆2𝑚𝑎𝑥 Ԧ
𝑣
𝑆2m𝑖𝑛 𝑆1𝑚𝑎𝑥 Ԧ
𝑣
Ԧ
𝑣
OBB Algorithm - YouTube
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
⊕ ∈ ∈
⊖ ∈ ∈
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
–
→
→
𝑆𝐶
Ԧ
𝑑 = 𝑆𝐴 ( Ԧ
𝑑) 𝑆𝐵 (− Ԧ
𝑑)
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
GJK Algorithm - Minkowski Different - YouTube
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
Ԧ
𝑑
𝑆𝑠3
Ԧ
𝑑 = 𝑆𝑠1 ( Ԧ
𝑑) 𝑆𝑠2 (− Ԧ
𝑑)
𝐴𝑂
𝑆𝑠3 𝐴𝑂 = 𝑆𝑠1 (𝐴𝑂) 𝑆𝑠2 (−𝐴𝑂)
𝐴𝑂
𝐴𝑂
𝑂𝐵 𝐴𝑂
𝑂𝐵 ∙ 𝐴𝑂
𝐴𝑂
∙
𝑂𝐵
𝑂𝐵 𝐴𝑂
𝐴𝑂
𝑂𝐵
𝑂𝐵 ∙ 𝐴𝑂
𝐴𝑂
𝑂𝐵
𝑂𝐵 ∙ 𝐴𝑂
𝐴𝐵
Ԧ
𝑑 𝐴𝐵 × 𝐴𝑂 × 𝐴𝐵
𝐴𝐵
𝐴𝑂
×
Ԧ
𝑑
Ԧ
𝑑
𝐴𝐵 × 𝐴𝑂
𝐴𝐵 𝐴𝑂
𝐴𝐵 𝐴𝑂
𝐴𝐵
𝐴𝑂
𝐴𝐵 × 𝐴𝑂 × 𝐴𝐵
𝐴𝐵
Ԧ
𝑑
𝐴𝐵
𝐴𝑂
Ԧ
𝑑
Ԧ
𝑑
𝑂𝐶 ∙ Ԧ
𝑑
𝑂𝐶
충돌 알고리즘(collision detection algorithms)
𝑅𝐴𝐵𝐶
𝑅𝐴𝐶
𝑅𝐵𝐶
𝑅𝐴𝐵
𝑅𝐴
𝑅𝐵
𝑅𝐶
𝑅𝐴𝐵𝐶
𝑅𝐴𝐶
𝑅𝐵𝐶
𝑅𝐴𝐵
𝑅𝐴
𝑅𝐵
𝑅𝐶
𝑅𝐴𝐵𝐶
𝐴𝑂
𝑅𝐴
𝑅𝐴𝐶
𝑅𝐵𝐶
𝑅𝐴𝐵
𝑅𝐴
𝑅𝐵
𝑅𝐶
𝐴𝑂
𝑅𝐴𝐵𝐶
𝑅𝐵
𝑅𝐴𝐶
𝑅𝐵𝐶
𝑅𝐴𝐵
𝑅𝐵
𝑅𝐶
𝑅𝐴𝐵𝐶
𝐴𝐵
𝑅𝐴𝐵
𝑅𝐴𝐶
𝑅𝐵𝐶
𝑅𝐴𝐵
𝑅𝐶
𝑅𝐴𝐵𝐶
𝑅𝐶
𝑅𝐴𝐶
𝑅𝐵𝐶
𝑅𝐶
𝑅𝐴𝐵𝐶
𝑅𝐵𝐶 𝑅𝐴𝐶 𝑅𝐴𝐵𝐶
𝑅𝐵𝐶
((𝐶𝐴 × 𝐶𝐵 × 𝐶𝐵 ∙ 𝐶𝑂
𝑅𝐴𝐶
𝑅𝐵𝐶
𝐶𝐴 × 𝐶𝐵
(𝐶𝐴 × 𝐶𝐵 × 𝐶𝐵
𝐶𝐵
𝑅𝐴𝐶
𝑅𝐵𝐶
(𝐶𝐴 × 𝐶𝐵 × 𝐶𝐵
𝑅𝐴𝐵𝐶
𝐶𝑂
𝑅𝐴𝐶
𝑅𝐵𝐶
𝑅𝐴𝐵𝐶
Ԧ
𝑑 𝐶𝑂
𝑅𝐵𝐶
𝑅𝐵𝐶
𝑅𝐴𝐶
𝑅𝐵𝐶
𝑅𝐴𝐵𝐶
𝑅𝐴𝐶
(𝐶𝐵 × 𝐶𝐴 × 𝐶𝐴
𝐶𝑂
𝑅𝐴𝐶
𝑅𝐵𝐶
𝑅𝐴𝐵𝐶
((𝐶𝐴 × 𝐶𝐵 × 𝐶𝐵 ∙ 𝐶𝑂 ((𝐶𝐵 × 𝐶𝐴 × 𝐶𝐴 ∙ 𝐶𝑂
𝑅𝐴𝐶
𝑅𝐵𝐶
GJK Algorithm - YouTube
the GJK Collision detection algorithm — Harold Serrano - Game Engine Developer
Separating Axis Theorem (SAT) Explanation. – YouTube
https://developer.mozilla.org/en-US/docs/Games/Techniques/3D_collision_detection
https://justicehui.github.io/other-algorithm/2018/06/23/OBB/
여러 가지 물체 충돌 감지 알고리즘 속 수학적 원리 : 네이버 블로그 (naver.com)

More Related Content

PDF
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
PDF
08. spectal clustering
PPTX
코딩테스트 합격자 되기 1주차 스터디 - 시간복잡도.pptx
PDF
Chapter 7: Matrix Multiplication
PDF
AI 연구자를 위한 클린코드 - GDG DevFest Seoul 2019
PDF
신경망 첫걸음 - 한빛미디어 요약
PPTX
Matlab matrices and arrays
PPTX
The sutherland hodgeman polygon clipping algorithm
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
08. spectal clustering
코딩테스트 합격자 되기 1주차 스터디 - 시간복잡도.pptx
Chapter 7: Matrix Multiplication
AI 연구자를 위한 클린코드 - GDG DevFest Seoul 2019
신경망 첫걸음 - 한빛미디어 요약
Matlab matrices and arrays
The sutherland hodgeman polygon clipping algorithm

What's hot (20)

PDF
08_게임 물리 프로그래밍 가이드
PDF
Game Physics Engine Development (게임 물리 엔진 개발)
PDF
C++20에서 리플렉션 기능 구현
PPTX
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
PDF
나만의 엔진 개발하기
PDF
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
PDF
빠른 렌더링을 위한 오브젝트 제외 기술
PDF
멀티스레드 렌더링 (Multithreaded rendering)
PPTX
게임프로젝트에 적용하는 GPGPU
PPTX
리플렉션과 가비지 컬렉션
PPTX
정종필 팀장이됐어요(더저용량)
PPTX
[Ndc11 박민근] deferred shading
PPTX
Tips and experience of DX12 Engine development .
PDF
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
PPTX
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
PPTX
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
PDF
인프런 - 스타트업 인프랩 시작 사례
PDF
임태현, MMO 서버 개발 포스트 모템, NDC2012
PDF
쉐도우맵을 압축하여 대규모씬에 라이팅을 적용해보자
PDF
테라로 살펴본 MMORPG의 논타겟팅 시스템
08_게임 물리 프로그래밍 가이드
Game Physics Engine Development (게임 물리 엔진 개발)
C++20에서 리플렉션 기능 구현
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
나만의 엔진 개발하기
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
빠른 렌더링을 위한 오브젝트 제외 기술
멀티스레드 렌더링 (Multithreaded rendering)
게임프로젝트에 적용하는 GPGPU
리플렉션과 가비지 컬렉션
정종필 팀장이됐어요(더저용량)
[Ndc11 박민근] deferred shading
Tips and experience of DX12 Engine development .
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
인프런 - 스타트업 인프랩 시작 사례
임태현, MMO 서버 개발 포스트 모템, NDC2012
쉐도우맵을 압축하여 대규모씬에 라이팅을 적용해보자
테라로 살펴본 MMORPG의 논타겟팅 시스템
Ad

충돌 알고리즘(collision detection algorithms)