Могу ли я увеличить производительность, используя glscissor - PullRequest
2 голосов
/ 03 декабря 2010

Я работаю над 2D-игрой для Android с использованием OpenGL ES 1.1, и я хотел бы знать, хороша ли эта идея / плоха / бесполезна.

У меня экран разделен на 3 секции, поэтому я использовал ножницы, чтобы избежать наложения объектов с одного вида на другой.

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

Моя текущая идея заключается в следующем:

Если бы я поместил блики вокруг каждого объекта перед тем, как нарисовать его, я бы увеличил скорость своего приложения.

Идея состоит в том, что если я поставлю GLScissor, (center +/- sizetexture), то конвейеру OpenGL придется выполнять меньше тестов (поскольку он может отбросить 90 ~ 99% поверхности благодаря glscissors.

Так что для всех экспертов opengl это хорошо, плохо или не окажет никакого влияния? И почему?

1 Ответ

1 голос
/ 03 декабря 2010

Это не должно иметь никакого влияния, ИМХО.Я не эксперт, но я думаю следующее:

  • Тест Scissor экономит на скорости заполнения вашего GPU (количество фрагментов / пикселей, которые аппаратное обеспечение может помещать в кадровый буфер в секунду),
  • Если вы поместите glScissor вокруг каждого объекта, тест фактически ничего не обрежет - будет отображаться одинаковое количество пикселей, поэтому скорость заполнения не будет сохранена.

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

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

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