Быстрое рисование многих текстурированных частиц в OpenGL ES 1.1 - PullRequest
1 голос
/ 10 декабря 2010

Я пытаюсь визуализировать некоторые эффекты частиц в Android, используя OpenGL.Каждая частица будет текстурированным квадратом с билбордом, и каждая частица будет отображаться с вращением (то есть вокруг оси z).Я ограничен в использовании OpenGL ES 1.1, поэтому точечные спрайты и пиксельные шейдеры не подходят.Какой быстрый способ рендеринга и обновления позиций многих частиц (например, от 100 до 5000)?

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

1 Ответ

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

Случайная идея.Может или не может работать хорошо.Используйте один вызов отрисовки или хотя бы пакетные частицы вместе в группы (скажем, 32 на группу).Вы можете создать каждую группу на кадр в ЦП и затем отправить ее вниз.Просто создайте один большой массив с GL_TRIANGLE_FAN (IIRC, вы являетесь поклонником «завершения», добавив одну и ту же вершину дважды).

Одна из проблем, я считаю, заключается в создании этого буфера.Это Java или JNI?Вы используете буфер java.nio?Из того, что я читал на форумах, изменение этих буферов в Java может быть очень медленным.(Кстати, я не очень знаком с обработкой внутреннего буфера в Android, вам может понадобиться или не потребоваться их двойная буферизация.)

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