XNA에서 뷰 매트릭스를 이해하는 데 심각한 문제가 있습니다. 나는 다른 모든 부분들과 꽤 멀리 떨어져 왔고, 필요한 수학을 배웠기 때문에 처음에 무엇을하는지 이해하지 않고서는 내장 된 행렬 함수를 사용하고 싶지 않습니다.XNA 매트릭스보기 - 검색 설명
이제 회전, 투영 및 변환의 기본 사항을 이해하지만 XNA에서보기 매트릭스가 작동하는 방식을 이해할 수는 없습니다.
내가 수집 한 것부터보기 매트릭스는 "세계"를 자신의 공간으로 변형시켜야합니다. 합리적인 것 같지만, 라이브러리의 Matrix.CreateLookAt 메서드는 매우 혼란 스럽습니다.
내가 설립 한(어떤 라이브러리 함수 출력을 검사를 통해) 그 코드 수율이 두 조각 같은 결과 :
Matrix view = Matrix.CreateReflection(new Plane(Vector3.UnitX, 0)) * Matrix.CreateReflection(new Plane(Vector3.UnitZ, 0)) * Matrix.CreateTranslation(Position);
// ..equals this if (Position = (0 0 -5), since LookAt "looks at" but the above just looks straight down Z)..
Matrix blah = Matrix.CreateLookAt(Position, Vector3.Zero, Vector3.UnitY);
가 왜 X와 Z 축 플립? 나는 카메라 회전에 따라 세계를 회전시켜야한다고 생각했지만 반대 방향으로 그리고 나서 반대 방향으로 같은 양만큼 세계를 번역합니다.
아니면 변형으로 사용되지 않는 뷰 매트릭스가 아니라 카메라의 위치와 회전을 인코딩하는 것입니까?
고마워, 내 원래의 아이디어가 맞았다. 그러나 나는이 모든 다른 좌표계를 약간 혼란스럽게 만들었습니다. – Skurmedel