2013-07-23 3 views
1

Я реализовал эффект обработки постпроцесса в моей игре для Android, используя рендер для текстуры и правильных шейдеров. Он работает, но удар по производительности неприемлем. Поэтому я подумал, что смогу сделать сцену меньшей текстурой, а затем растянуть текстуру до полноэкранного режима. Проблема в том, что, когда я прикрепляю текстуру, которая меньше, чем область просмотра, к фреймбуферу без экрана, сцена обрезается. На рисунке ниже показан вопрос:OpenGL ES 2.0: прикрепите меньшую текстуру к фреймбууру

illustration

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

ответ

1

Я думаю, вы можете это сделать, просто изменив Видовое окно, чтобы соответствовать размерам текстур, прежде чем выполнять рендеринг текстуры, а затем верните видовое окно обратно в размеры представления перед тем, как вы будете рендерить фреймбуфер. Не должно быть значительных потерь производительности, потому что вы будете звонить glViewport() в два раза чаще.

Ваше предложение по масштабированию матрицы проекции также должно работать.

Смежные вопросы