버그 해결을 위한 모든 질문을 던져
0 votes
258 views

 

수학을 잘 몰라서 .. 답답해요 도와주세요 

asked (5 point) , 258 views

2 answers

0 votes
우수 답변

Polygon과 Ray의 충돌체크는 단순히 폴리곤이 이루는 평면과 Ray가 만나는 지점을 찾는 것으론 부족합니다.

질문에서 언급하셨고 윗분의 답변에서도 그렇듯이 왠만하면 평면과 직선은 교차하게 되어 있습니다. 평면은 세점으로 정의 되는 것이지 세점이 이루는 영역으로 제한되는 개념이 아니기 때문에 법선과 수직이지 않은 직선은 무조건 평면과 교차합니다.

그래서 실질적으로 세점이 만드는 Polygon과 Ray가 교차하는지 알아보기 위해서는 조금 더 복잡한 연산을 수행하셔야 합니다.

직선과 삼각형의 충돌에 관한 알고리즘은 찾아보면 많이 나오는 것 같긴하니 직접 고안하기 보다는 그런것들을 찾아보시는 것이 더 효율적일것 같습니다.

제가 찾은 게시글로는 이런 게 보이는 군요. http://geomalgorithms.com/a06-_intersect-2.html

이미 개발하신 평면과 직선의 교차점을 찾으셨다면 나머지 구현이 꽤나 깔끔하게 될것 같아보이네요. 화이팅하세요~

answered (236 point)
선택됨

아 그나저나 참고삼아 말씀드리자면 OpenGl을 이용하고 계시다면 GLM 라이브러리에 이미 원하시는 메소드가 있을지도 모릅니다.. 연습을 위해서 구현해보시는 거라면 모를까 실제 작업에 필요하신거라면 이런걸 이용해 보심이 어떨런지요.. http://glm.g-truc.net/0.9.9/api/a00748.html#ga65bf2c594482f04881c36bc761f9e946

dx로도 IntersectTri 인지 요런비슷한 이름을 찾으시면 Tri와 Ray의 충돌을 검출가능합니다
감사합니다 답답했는데 정말 감사합니다.
0 votes
사실 지금 뭔가 질문의 핀트가 어긋나신것같..은데.. 음.. 제가 잘못이해했을수도있구요

 

일단 제가 보기엔 평면의 방정식으로 충돌체크를했으니 평면의 노말과 수직하는 즉 평행을 넘어가는 광선이아니라면 아니면 언젠가 어딘가에서는 무조건 충돌을 하게됩니다. 가정하시는 평면이 (0,0,1,-2) 니까 당연히 z가 2가되는 좌표에서 충돌하게 될것이고요.. 삼각형을 그려놓으신걸보니 삼각형과 레이(광선)의 충돌을 원하시는것같은데 이부분은 다시 한번 더 검색을하셔야할것같습니다.

일단 질문주신부분까지는 평면과 광선의 충돌이기때문에 삼각형과 광선의 충돌이 아닙니다.
answered (10 point)

버그 해결을 위해 도움을 구하고, 도움을 주세요. 우리는 그렇게 발전합니다.

throw bug 는 프로그래밍에 대한 전분야를 다룹니다. 질문,논의거리,팁,정보공유 모든 것이 가능합니다. 프로그래밍과 관련이 없는 내용은 환영받지 못합니다.

151 질문
253 answers
276 댓글
263 users