OpenGL ES 2.0: прикрепете по-малка текстура към кадровия буфер

В моята игра за Android внедрих ефекта след обработка на цъфтеж, използвайки рендиране към текстура и подходящи шейдъри. Работи, но ударът в производителността е неприемлив. Така че си помислих, че мога да направя сцената на по-малка текстура и след това да разтегна текстурата на цял екран. Проблемът е, че когато прикача текстура, която е по-малка от прозореца за изглед към буфера на рамката извън екрана, сцената се изрязва. Изображението по-долу илюстрира проблема:

илюстрация

Има ли някакъв начин да мога да „картографирам“ прикачената текстура към фреймбуфера по някакъв начин, така че целият изглед да бъде рендиран към него? Вероятно бих могъл да модифицирам проекционната матрица, за да постигна целта, но това би усложнило моя код и бих предпочел да го избегна.


person Matis    schedule 23.07.2013    source източник


Отговори (1)


Мисля, че можете да направите това, като просто промените прозореца за изглед, за да съответства на размерите на текстурата, преди да направите рендирането към текстура, след което зададете прозореца за изглед обратно към размерите на изгледа, преди да рендирате в буфера на кадрите. Не трябва да има значителна загуба на производителност, защото ще извиквате glViewport() два пъти по-често.

Вашето предложение за мащабиране на проекционната матрица също трябва да работи.

person ClayMontgomery    schedule 23.07.2013