Как сделать сцену с меньшим разрешением растянутой до полноэкранного исходного разрешения? - PullRequest
2 голосов
/ 11 июля 2011

Я видел такую ​​функцию только в приложениях DirectX: когда вы изменяете размер окна, рендеринг также соответственно растягивается, и похоже, что на самом деле это была растянутая текстура.сделать это эффективно в OpenGL?Цель этого состоит в том, чтобы создать полноэкранное приложение с собственным разрешением, потому что довольно трудно выбрать более низкое разрешение на ЖК-экранах и позволить мне рендерить с более низким разрешением, чтобы получить более высокий FPS.

Ответы [ 2 ]

2 голосов
/ 11 июля 2011

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

0 голосов
/ 11 июля 2011

Вы вызываете glViewport (), чтобы сообщить OpenGL, какая часть окна (в пикселях) будет в конечном итоге отрисована OpenGL. Вы используете метод, такой как glFrustum (), glOrtho () или glOrtho2D (), чтобы установить параметры «мира», в котором вы рисуете.

Если вы обрабатываете событие, сообщающее вам, когда размер окна изменяется, то вы можете снова вызвать glViewport (), чтобы соответствующим образом обновить размер окна просмотра.

Итак, если ваш мир в квадрате (например), а ваш видовой экран прямоугольный, он будет иметь тот эффект, на который вы ссылаетесь (он соответственно растянется, как на самом деле текстура).

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