OpenGL 충돌
근사 기술
이것은 원 내부의 물체를 근사화하는 예입니다. 왼쪽에는 원으로 근사화된 두 개의 완전한 다각형을 볼 수 있고 오른쪽에는 작은 원 세트로 근사한 다각형의 일부를 볼 수 있습니다.
이미지: 닉 보빅 @ GAMASUTRA
완전한 개체
개체의 일부
두 개의 원이 서로 닿거나 겹치면 충돌이 발생합니다. 그러나 근사 기법에는 한 가지 문제가 있습니다. 단순한 형태로 근사화한 후 경계 형태가 서로 닿거나 겹칠 때 충돌이 발생한다. 그래서 위의 이미지에서 볼 수 있듯이 실제 폴리곤이 충돌하지 않아도 경계원이 겹쳐서 충돌합니다.
충돌 유형
원-원 충돌
원과 다른 원 사이의 충돌을 감지하기 위해 원-원 충돌 알고리즘이 사용됩니다.
반지름이 각각 r1과 r2인 두 개의 원을 상상해 보십시오.
원의 두 중심점 사이의 거리를 d로 구하면 d = r1 + r2일 때 두 원이 서로 닿습니다. 그리고 그들은 d < r1 + r2 일 때 겹칩니다.
따라서 원-원 충돌 알고리즘은 다음과 같이 정의할 수 있습니다.
A collision of two circles happen when Radius 1 + Radius 2 > = Distance.
AABB - AABB 충돌
AABB는 "Axis-Aligned Bounding Box"의 약자입니다. 이는 장면의 기본 축에 정렬된 직사각형 모양을 의미합니다. 2D 장면을 사용하는 경우 기본 축은 X와 Y입니다.
아래는 AABB로 둘러싸인 원형 개체의 예입니다.
이미지: OpenGL 배우기
충돌을 감지할 때 X축과 Y축을 모두 고려해야 합니다. 다음 두 AABB를 고려하십시오.
위 이미지와 같이 상자의 X 범위와 Y 범위를 개별적으로 계산할 수 있습니다.
어느 한 축에서 범위가 서로 축소되면 충돌이 발생합니다.
이미지: 모질라 MDN
위 이미지에서 X 범위가 겹치는 것을 볼 수 있습니다. 따라서 충돌이 발생합니다. Y축에서도 마찬가지입니다.
지금까지 충돌, Circle-Circle 충돌 및 AABB 충돌에 대한 기본 사항에 대해 논의했습니다. 이것이 이 블로그의 전부입니다. 질문이나 의견이 있으시면 아래에 의견을 남겨주세요! 행복한 코딩!
Reference
이 문제에 관하여(OpenGL 충돌), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/suvink/opengl-collisions-9ai텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)