Производительность glFramebufferTexture2D - PullRequest
5 голосов
/ 14 июня 2010

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

Мой вопрос: лучше ли иметь отдельное FBO для каждой текстуры, в которую я хочу рендерить, или мне лучше иметь одно FBO и связывать целевую текстуру, используя glFramebufferTexture2D каждый раз, когда я хочу изменить цель рендеринга?

Моя платформа - OpenGL ES 2.0 на iPhone.

Ответы [ 3 ]

6 голосов
/ 19 июня 2010

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

3 голосов
/ 14 июня 2010

AFAIK, лучшая производительность достигается за счет использования только одного FBO и изменения текстурных вложений при необходимости.

0 голосов
/ 28 ноября 2016

Лучший способ - сделать эталонный тест.

...