2017-01-06 4 views
2

오목한 모양이 box2d에서 지원되지 않는 것 같지만 왜 지원되지 않는지와 원하는 모양을 얻기 위해 여러 개의 볼록한 모양을 만들어야한다는 사실에 대한 설명을 찾지 못했습니다. 오목한 도형을 지원하는 것이 더 쉽지 않으므로 하나의 단일 도형을 만들어야합니다.Box2d : 왜 오목한 모양이 아닌가요?

누군가 똑똑한 사람이 기술 부분과 같이 box2d에서 오목한 모양이 지원되지 않는 이유를 설명해주십시오. 그리고 하나가 아닌 여러 모양을 가지기 위해 더 많은 메모리를 차지하지 않습니까?

이렇게하면 세상이 나에게 더 이해 될 수 있습니다!

+0

이 질문에 game-physics 태그를 추가하는 것이 합리적이고 유용할까요? 왜 오목한 모양이 아닌지에 대한 대답은 게임 - 물리학 태그가 경험있는 답변을 얻는 데 필요한 더 폭 넓은 노출을 얻을 수있는 성능과 관련이 있다고 생각합니다. –

답변

0

Box2D는 Erin Catto 및 "Box2D is not open contribution"에 의해 작성/개발되었습니다. Box2D가 오목한 도형을 지원하지 않는 이유에 대한 답을 얻기 위해, 우리는 그를 봐야만합니다. Why do shapes have to be convex?

Erin's first response is :

나는이 충분히 그것을 설명 생각 :

다행히, Box2D의은 (는 일반 토론 섹션 2010) 질문과 웹 포럼이 http://en.wikipedia.org/wiki/Separating_axis_theorem

오목한 모양을 다루는 기술이 있습니다. 일반적으로 많은 메모리와 설정이 필요합니다. 예를 들어, 서명 된 거리 맵을 사용하는 일부 신문을 보았습니다. 그러나 그들은 종종 세부 사항에 대해 매우 가볍습니다.

가 AFAIK 더 높은 품질, 오목 좁은 위상 충돌 고성능 알고리즘이 없습니다 : 나중에 토론

Erin adds는 내가 생각하는 것은 통찰력있는 보석이다. 그대로 볼록한 형태의 접촉 점과 법선을 계산하는 방법에 대해서는 거의 쓰여지지 않았습니다.

2011 년 관련 StackOverflow 질문 (Algorithms for collision detection between concave polygons)으로 연결됩니다. 현재까지 그 질문에 대한 해답은 단 하나 뿐이며 2003 년부터는 종이를 언급합니다. 이것은 아일랜드의 입장과 주장을 입증하는 것 같습니다.

관련 문제