Вопрос

У меня проблемы с обертыванием головы, как эти работы. Во-первых, в 2D-игре Матрица проекции должна быть настроена как Ortho с левой, справа, верхним, нижним, совпадает с окном, верно? Но когда окно изменяет размер, я должен просто изменить glviewport, а не матрицу проекции? И как я могу сохранить соотношение сторон?

Может ли кто-то объяснить цели этих двух вещей, в 2D-орфографии, чтобы я мог понять это лучше?

Похоже, OpenGL делает много бесполезных веществ в 2D-установке. Растиризация и расчет фрагментов, когда изображения уже есть, преобразование координат вершины в NDC только для преобразования назад к тому, что они уже где by glviewport.

Кроме того, как входит в устаревшие OpenGL OpenGL, мы должны сделать наши собственные матрицы, но не наши собственные расчеты, которые делают glviewport?

Спасибо.

Это было полезно?

Решение

Не путайте то, что вы вводите в GL и что он выводит.

Параметры, которые вы используете для вычисления MATRIX ORTHO, являются теми, которые коррелируют к вашему Вход. Отказ Выход матрицы проекции всегда является [-1: 1] x [-1: 1] x [-1: 1] CUBE.

Просмотр просмотра переводит этот куб к вашим целевым координатам рендеринга. Таким образом, это обычно то, что вы хотите изменить, чтобы соответствовать вашему новому размеру окна (ну, что и сам кадр).

Да, GL делает много бесполезных веществ для 2D-рендеринга. Это 3D API в конце концов ...

Я закончу, сказав, что вам не нужно строить матрицы, чтобы сделать 2D преобразования, пока ваша вершина шейдера выводит в кубе, который я упоминал ранее. Если вы хотите написать верхний правый угол точки зрения, вы всегда можете передать свои вершины напрямую как (0,0) (0,1) (1,0) (1,1) и просто вывод этого.

Другие советы

Не уверен, на каком языке вы используете OpenGL, но если вы ищете C ++, этот сайт, http://nehe.gamedev.net/ В целом охватывает все и имеет учебники от максимально простых, как «Hello World» до основных игр и трехмерных эффектов.

Надеюсь, поможет

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top