У меня есть приложение, которое использует DirectX, и, следовательно, левую систему координат мира, вид, который смотрит вниз на положительный z, и проекцию, которая проецируется в единичный куб, но с z от 0..1.
Я портирую это приложение на OpenGL, и OpenGL имеет другую систему координат и т. Д. В частности, это правша, вид смотрит вниз вдоль отрицательного z, и проекция находится в кубе реальной единицы.
Какой самый простой способ адаптировать матрицы DirectX к OpenGL? Изменение мирового пространства кажется простым, просто перевернув ось X, но я не совсем уверен, как изменить вид / проекцию. Я могу изменить все матрицы по отдельности перед тем, как их умножить и отправить в мой шейдер. Если возможно, я бы хотел придерживаться системы координат на основе DirectX как можно дальше вниз по конвейеру (т. Е. Я не хочу менять место, где я размещаю свои объекты, как я вычисляю свою точку обзора и т. Д. - в идеале, я Я только внесу некоторые изменения в матрицы непосредственно перед передачей их моим шейдерам.)