Решение проблемы альфа-смеси в OpenGL для повышения производительности - PullRequest
3 голосов
/ 13 марта 2009

Поскольку смешивание влияет на производительность нашей игры, мы попробовали несколько стратегий смешивания, чтобы создать «иллюзию» смешивания. Одним из них является рисование спрайта в каждом нечетном кадре, в результате чего спрайт виден в половине случаев. Эффект достаточно хороший. (Кстати, вам нужна правильная частота кадров, иначе ваш спрайт будет заметно мигать)

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

Ответы [ 3 ]

3 голосов
/ 13 марта 2009

Это фактическое смешивание, которое убивает вашу производительность? (то есть пропускная способность видеопамяти)

Какие игры обычно делают в наши дни, чтобы обрабатывать множество альфа-смешанных вещей (например, большие взрывы, которые покрывают весь экран): визуализировать их в меньшую текстуру (например, на 2x2 меньше или на 4x4 меньше, чем экран) и объединить их обратно на основной экран.

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

См. Статью из GPU Gems 3, например: Высокоскоростные частицы вне экрана . В блоге Кристера Эриксона также рассматриваются многие подходы к оптимизации: Оптимизация рендеринга системы частиц

1 голос
/ 13 марта 2009

Отличная статья о быстром рендеринге систем частиц. Он охватывает меньшую технику внеэкранного буфера и предлагает довольно много других подходов.

Вы можете прочитать это здесь

0 голосов
/ 11 сентября 2009

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

...