Производительность рендеринга векторной графики OpenGL на мобильных устройствах

Как правило, рекомендуется не использовать векторную графику в мобильных играх или предварительно растеризовать ее — для повышения производительности. Это почему? Я думаю, что OpenGL по крайней мере так же хорош в рисовании линий / треугольников, как рендеринг изображений на экране …

1

Решение

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

3

Другие решения

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

1

Ответ зависит от оборудования. Вы используете графический процессор или нет?
Сегодня современные мобильные устройства с Android и IOS имеют встроенный в чипсет графический процессор.
Эти графические процессоры очень хороши с векторной графикой. Чтобы исследовать эту точку, большинство графических процессоров имеют выделенный процессор Geometry в дополнение к 1 или более пиксельным процессорам. (На примере Mali-400 GPU).
Например, предположим, вы хотите нарисовать 200 прозрачных кругов разных цветов.
Если вы делаете это с современным OpenGL, вам понадобится только один набор геометрии (список треугольников, образующих круг) и список параметров для каждого круга, скажем, положение и цвет. Если вы предоставите эту информацию графическому процессору, он будет очень быстро отображать ее параллельно.

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

Это зависит от того, что вы хотите сделать, и оборудования. Если на вашем оборудовании нет графического процессора, вам, вероятно, следует предварительно визуализировать графику.

1
По вопросам рекламы [email protected]