Как OpenGL округляется при преобразовании области просмотра? - PullRequest
1 голос
/ 30 августа 2011

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

Как OpenGL выполняет преобразование области просмотра?В какой-то момент нормализованные координаты устройства превращаются в координаты области просмотра, которые, как я полагаю, все еще выражаются в числах с плавающей точкой.Как OpenGL преобразует эти координаты области просмотра в пиксели на экране?Это пол?CEIL?средний?

И можно ли каким-либо образом настроить это поведение?

1 Ответ

2 голосов
/ 30 августа 2011

Как OpenGL выполняет преобразование области просмотра?

Спецификация OpenGL-3.1 определяет это в разделе 2.12. Здесь слишком долго цитировать, просто скачайте документ с http://opengl.org и прочитайте для себя.

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

И можно ли каким-либо образом настроить это поведение?

Нет, о чем я знаю. Лучшее, что вы можете сделать, это написать вершинный шейдер, который преобразует вершины таким образом, чтобы они заканчивались целочисленными координатами (+/- небольшое смещение, если используется floor или ceil) после всей цепочки преобразования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...