Можно ли разложить матрицу камеры, полученную путем резекции? - PullRequest
0 голосов
/ 26 октября 2019

Я получил матрицу камеры , установив соответствия между 3D-точками в пространстве и 2D-точками на экране (резекция)

Моя пользовательская матрица работает, но я невозможность применить эту матрицу к основной камере Unity так же, как я это делал в другом приложении. Для Unity кажется, что мне нужно разложить свою матрицу, чтобы получить положение, ориентацию, угол обзора и т. Д.

Я видел много тем об использовании пользовательских матриц на основной камере Unity, но во всех случаях они имелиматрица проекции отделена от матрицы модели камеры.

Это математика, лежащая в основе моего процесса получения моей пользовательской матрицы: https://math.stackexchange.com/questions/3388529/resectioning-problem-and-matrix-decomposition-what-am-i-missing>

Здесь я использую одно конкретное приложение (Unity), но я быв любом случае, буду рад разобраться с математикой.

Я сделал набросок Обработки для проверки своего кода, где я могу просто использовать свою пользовательскую матрицу для переопределения матрицы по умолчанию:

pushMatrix();
applyMatrix(customViewProjMatrix);
shape(model3d, 0, 0);  //this is what I want to render
popMatrix();

Теперь моя матрица является продуктом матриц Вид и Проекция, поэтому я не смог найти способ использовать это на основной камере Unity, так как мне кажется, что они нужны мне для двух разных вещей.

Тем не менеев Unity, как и в приведенном выше коде, я могу создать несколько строк отладки, создав собственный шейдер.

GL.PushMatrix();
GL.LoadPixelMatrix ();
GL.MultMatrix (customViewProjMatrix);
GL.Color(Color.yellow);
GL.Begin(GL.LINES);
GL.Vertex3 (-5f, 5f, -5f);
GL.Vertex3 (-5f, -5f, -5f);
GL.End();
GL.PopMatrix();

Это просто для проверки моей матрицы, но не влияет на основную камеру, что является моей целью.

Я не могу, если я могу использовать свою матрицу так, как я получаюэто на Unity, так что любые предложения о том, как использовать мою собственную матрицу или другой метод для ее создания для единства будут оценены.

...