가 나는 것처럼 간단 할 거라 생각 했어요.월드 매트릭스를 사용하여 Vector3s를 올바르게 변환하려면 어떻게해야합니까?</p> <pre><code>Vector3 point = Vector3.Transform(originalPoint, worldMatrix); </code></pre> <p>그러나 분명히하지 ... 그것은 지점의 숫자가 수천에 촬영되어 있는지 확인하세요 :
기본적으로, 내가하려고하는 것은 충돌 시스템을 만드는 것입니다.이 시스템의 모든 두 점은 선이므로 기본적으로 선을 충돌시키고 싶습니다. 나는 선들이 월드 행렬에 따라 스케일, 회전, 번역 할 수 있기를 원한다. (충돌 선이 물체의 크기, 회전 및 평행선과 일치하도록)
나는 지금 몇 시간 씩 노력해 왔지만 그걸 알아낼 수 없습니다. 나는 View Matrix를 곱해 보았습니다. 그리고 그것이 내가 원하는 것에 가장 가깝다면, 두 세트의 숫자 사이를 전환하는 것처럼 보입니다! 그것은 하나의 세트와 함께 머물면 완벽 할 것입니다, 나는 그것이 계속 변화하는 이유를 모르겠다 ...
어떤 도움, 제발? :(
편집 :의 포인트 =의 originalpoints 먼저 어느 쪽이든 내가 지속적으로 업데이트 호출에 포인트를 업데이트하고있어, 조금을 추가하려면하지만 그건 아무것도 바꿀 것 나도 몰라
스티브.. H : 한 줄 그래서이 점 것 : 처음에는
originalPoint[0] = new Vector3(-42.5f, 0f, 0f);
originalPoint[1] = new Vector3(42.5f, 0f, 0f);
point[0] = Vector3.Transform(originalPoint[0], worldMatrix);
point[1] = Vector3.Transform(originalPoint[1], worldMatrix);`
는 point[0] & [1]
, 나는 내 선수도 몇 픽셀을 이동하는 순간을 ... originalPoint[0] & [1]
같은 동일하지만
point[0] = (-5782.5f, 0f, 0f)
point[1] = (-5697.5, 0f, 0f)
,617.
플레이어의 포지션은 -56.0f
입니다. 객체가 그래픽 제대로 표시
_world = Matrix.Identity // ISROT
* Matrix.CreateScale(_scale) // This object's scale
* Matrix.CreateFromQuaternion(_rotation) // It's rotation
* Matrix.CreateTranslation(_offset) // The offset from the centre
* Matrix.CreateFromQuaternion(_orbitRotation) // It's orbit around an object
* _orbitObjectWorld // The object to base this world from
* Matrix.CreateTranslation(_position); // This object's position
:로
내 worldMatrix
간다. 크기를 조정하고, 회전하고, 완벽하게 변환합니다. 그들은 궤도의 크기, 회전 및 변환도 따르지만 나는 아직 많이 궤도를 테스트하지 않았습니다. 더 연구하면, 원래의 포인트도 변경되는 ... :
나는
편집 ...이 충분한 정보를 바란다 | 왜 그런 일이 일어나는지 모르겠다. 그들은 ...
정상 작동합니다. 당신의 세계 매트릭스가 맞습니까? – Donnie
내가 사용하는 월드 매트릭스는 게임의 오브젝트 그래픽과 완전히 동일하며 모두 완벽하게 잘 표시됩니다. 크기 조정 및 회전은 모두 함께 작동합니다. 그것들은 제대로 작동하지 않는 것 같습니다. – VRock
우리가 도울 수 있도록, 'point'&'originalPoint'와'worldMatrix'의 앞뒤의 구성 요소 값을 게시하십시오. –