2013-07-18 4 views
0

첫 번째 질문은 여기에 있습니다. 벌써 대답했다면 사과드립니다. Google이나 여기를 통해 아무 것도 찾을 수 없었습니다.큰 Matrix.Translation 값으로 인해 그래픽 이상이 발생합니다

내 게임은 방대한 광대역을 필요로하는 우주 시뮬레이션입니다 (현실적인 관성, 멈추지 않는 한 연속 회전 등). 일어나는 일은 우리 우주선이 출발 지점에서 너무 멀리 떨어져 (Matrix.Translation의 측정 기준으로 약 1,000,000) 비행하거나 카메라가 불규칙하게 회전하기 시작하는 것입니다. 좀 더 세심한주의를 기울이면 시작 위치에서부터 시작하자마자 작은 변형이 생깁니다 (예 : 3D 모델의 가장자리에 문자 그대로 하나의 변화하는 픽셀이 있지만 우주선은 완전히 고정되어 있어야합니다). 원래는 회전에 대한 연속적인 변화와 비슷한 문제로 인해 배의 행렬이 직각이되지 못하게되었지만 정규화를 위해 쿼터니언으로 변환 한 다음 행렬로 다시 변환하여 해결했습니다. 3D 프로그래밍에 대한 내 경험은 미비합니다.

내가보기에 원하는 코드가 무엇인지 확실하지 않지만, 요청하면 붙여 넣을 것입니다. 잘못된 방향으로 가고 있습니까? 태양계를 움직여야합니까? 우주선이 태양계를 돌아 다니는 우주선에 붙어 있습니까? 도움을 청합니다. 도와주세요.

+0

매트리스가 어떻게 형성되어 개체/카메라에 적용되는지 게시하십시오. – ClassicThunder

답변

0

전적으로 확인 질문에 대한 I'n하지만, 그건 당신의 문제를 확실히 당신이 당신의 은하 현실적인 만드는 경우 생각하고, 수레를 사용 (또는 어떤 점에서 두 배). 부동 소수점 정확도에 대한 자세한 내용은 this question을 참조하십시오.

해결 방법은 아마도 this 블로그 게시물이 흥미로울 수도 있습니다. 지금 당면하고있는 것과 동일한 문제를 해결하고 공간 시뮬레이션 게임을 만들고 정확성 문제를 해결하려고하는 것 같습니다.

+0

마킹, 그 머리에 못을 박았다. 저는 태양계가 우주선 주위를 회전하게함으로써 우주선의 매트릭스를 거의 100 % 정확하게 유지할 것입니다. 거리가 멀어 질수록 물체의 정확도가 떨어지게됩니다 (눈에 띄지 않아야 함). 점점 커져가는 가치의 문제를 알고있었습니다. Jack Purdum의 Beginning C#은 배운대로 설명하는 환상적인 일을합니다. –

관련 문제