현재 JOGL을 사용하여 첫 FPS 게임을 디자인하고 있습니다. (OpenGL 용 Java 바인딩).OpenGL 충돌 감지
지금까지 '월드'(일련의 큐브)와 플레이어 모델을 생성 할 수있었습니다. 플레이어와 큐브 사이의 충돌 감지 기능이 뛰어납니다.
이제 총을 추가하려고합니다. 총 모델을 올바르게 그려서 플레이어 모델에로드했습니다. 구현하고자하는 첫 번째 총은 당신이 목표로하고있는 곳에서 레이저를 발사하고 즉각적인 가시선 레이저를 발사하는 레이저 총입니다. 적 모델을 구현하기 전에 레이저와 벽 사이의 충돌 감지 기능을 원합니다.
내 레이저는 현재 일련의 작은 큐브에 의해 그려집니다. 첫 번째 큐브는 플레이어 총의 끝에 그려지고, 그 다음부터 계속해서 그립니다. 아이디어는 세계의 큐브와 같은 무언가로 충돌이 감지 될 때까지 레이저의 큐브를 계속 그리는 것이 었습니다.
전 세계에서 큐브의 위치를 알고 있습니다. 문제는 문자 모델을 그리기 위해 glMatrixPush를 호출해야한다는 것입니다. 그런 다음이 모델 뷰 내에서 레이저가 그려집니다. 제가 옛 좌표계를 잃어버린 것을 의미합니다. 그래서 저는 한 시스템에서 세계를 그리고 나서 다른 시스템에서 세계를 끌어들입니다. 이 플레이어 매트릭스 내에서 glRotate와 glTranslate를 여러 번 호출하여 카메라가 회전하는 방식과 모든 것을 동기화합니다. lazer는이 새로운 시스템의 z 축을 따라 변환하여 만들어집니다.
내 문제는 이러한 변환을 통해 카메라가 관련된 회전으로 인해지도 좌표계에 레이저가있는 곳을 더 이상 알 수 없습니다.
누구든지이 문제를 해결하는 방법에 대해 알고 있거나 아이디어가 있습니까? 저는 레이저의 새로운 좌표를지도의 이전 좌표로 변환 할 방법이 필요하다고 생각합니다. 그러나 완료된 모든 변환을 취소하는 방법을 모르겠습니다. OpenGL에서 제공하는 일부 기능을 사용하여 이러한 유형의 문제를 처리 할 수도 있습니다.
+1 당신이 문제의 일부를 내가했던 것보다 더 잘 설명했다고 생각합니다 :) – Trillian