Я представляю частицы в 2D-игре. Каждая частица представляет собой квадрант (2 треугольника). Как сделать чертеж максимально быстрым? Все частицы имеют одинаковую текстуру, я только меняю ее позиции.OpenGL: оптимизация рендеринга квадроциклов
Теперь я использую вызов glVertexPointer и glDrawArrays для каждой частицы. Поэтому я каждый раз отправляю 4 вершины на GPU.
Есть ли другой подход, который может быть быстрее?
Я использую OpenGL ES 1.1 (iPhone)
Спасибо!
Итак, чтобы вызвать glDrawArrays всего один раз, я должен добавить дополнительные вырожденные вершины? или я должен использовать GL_TRIANGLES? Я думаю, что любой из двух способов я бы использовал еще две вершины на частицу, не так ли? Это на 50% больше вершин, чем то, что я использую сейчас, будет ли все-таки быстрее? – Damian
Итак, теперь вы используете полосы или поклонники (вы не упомянули). Да, вместо этого вы использовали бы треугольники. Попробуйте и сравните. :) Если количество частиц значимо высокое (сотни? Тыс.?), То текущее количество вызовов обратного звонка убивает вашу частоту кадров. Этот тест должен быть прост. Точечные спрайты потребуют большей модификации, но приведут к значительному количеству вертов (одна точка на каждую частицу и отсутствие текстурных коордов). –
Да, теперь я использую полоски. Сотрудник также говорит мне использовать glDrawElements для отправки меньше вершин (по четыре на квадрат), но я должен также отправить индексы ... как вы думаете, что может помочь? – Damian