Я пытался реализовать подход отрисовки к текстуре в нашем приложении, которое использует GLES 3, и у меня он работает, но я немного разочарован падением частоты кадров.
До сих пор мы выполняли рендеринг непосредственно в основной FBO, который был FBO с множественной выборкой, созданным с использованием EGL_SAMPLES = 8.
В основном я хочу иметь возможность удерживать пиксели, которые уже были нарисованы, пока я все еще рисую. Поэтому я подумал, что это должен сделать подход от рендеринга к текстуре. Затем я просто читал часть текстуры внеэкранного FBO, когда захочу, и когда я закончил рендеринг, я скопирую все это в основной FBO.
Вникнув в это, я обнаружил, что мне пришлось реализовать систему с мультисэмплированным FBO, а также текстурированным без мультисэмплирования FBO, в котором мне пришлось разрешить мультисэмплированный FBO. Затем просто перенесите разрешенное в основной FBO.
Все это работает, но проблема в том, что при использовании вышеупомянутой системы и основного FBO без мультидискретизации (EGL_SAMPLES = 0) я получаю довольно большое падение частоты кадров по сравнению с частотой кадров, которую я получаю, когда использую только основной FBO с EGL_SAMPLES = 8.
Углубившись в это, я обнаружил, что люди пишут в Интернете, а также размещают здесь сообщение https://community.arm.com/thread/6925, в котором говорится, что самый быстрый подход к мультисэмплингу - использовать EGL_SAMPLES. И действительно, именно так это выглядит и на jetson tk1, который является нашей целевой платой.
Что, наконец, подводит меня к вопросу и приношу свои извинения за длинное вступление:
Есть ли способ спроектировать это так, чтобы использовать внеэкранный fbo без множественной выборки для всего рендеринга, который в конечном итоге переносится в основной мультисэмплированный FBO, который использует EGL_SAMPLES?