Игра для Android: Canvas или OpenGL?

Я должен написать игру для Android, и мне нужно выбирать между Canvas или OpenGL для рисования. Я читал, что Canvas не имеет хорошей частоты кадров, но что хорошего? Представьте, что вы собираетесь написать игру типа Angry Birds, хватит ли частоты кадров Canvas?

21
задан 0xCursor 14 February 2019 в 20:21
поделиться

1 ответ

Все зависит от типа игры, которую нужно реализовать.

Учитывая, что вы запрашиваете реализацию canvas, я полагаю, вы имеете в виду чистую 2D-игру со спрайтами.

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

Если производительность имеет значение или у вас очень много спрайтов, тогда стоит внедрить систему на основе OpenGL.

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

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

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

Canvas действительно должен быть принят для простых реализаций.

P.S. если вы выберете OpenGL ES 2.0 и программируемый конвейер, у вас действительно не будет ограничений в том, что вы достигнете (свечение, размытие и тысячи различных опций). В этом случае предел - это действительно наша фантазия.

:)

4
ответ дан 29 November 2019 в 06:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: