Android Open GL действительно медленнее, чем холст? - PullRequest
3 голосов
/ 18 марта 2011

я тестирую android SpriteMethodTest и на холсте настроек по умолчанию набирает 58fps, в то время как open gl составляет 50-55fps, и разрыв увеличивается с увеличением числа спрайтов.

У меня сложилось впечатление, что opengl быстрее, чем canvas, так что это не так? или у них что-то не так с моим телефоном (htc desire)?

http://code.google.com/p/apps-for-android/source/browse/trunk/SpriteMethodTest/

Ответы [ 6 ]

7 голосов
/ 19 марта 2011

Следует отметить, что SpriteMethodTest не использует OpenGL с максимальной эффективностью.Каждый спрайт визуализируется с собственным набором вызовов GL, где в идеале много спрайтов должно быть объединено в как можно меньшее количество вызовов OpenGL.

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

1 голос
/ 18 марта 2011

Вероятно, вам следует сначала профилировать свой код, чтобы убедиться, что он действительно отображает то, на что вы тратите время.

1 голос
/ 18 марта 2011

Возможно, вы не измеряете это правильно.Сколько спрайтов вы используете?Вероятно, FPS будет таким же с <10 ​​спрайтами, но как только вы начнете увеличивать количество спрайтов, система <code>OpenGL определенно превзойдет систему Canvas.

Для получения дополнительной информации по этой темесм это .

0 голосов
/ 24 марта 2011

Просто запустил SpriteMethodTest на HTC Tattoo (1.6, вероятно, без графического процессора) и OpenGL действительно плох по сравнению с Canvas. Если для 100 спрайтов я получаю чуть более 30 кадров в секунду, тогда как все 3 метода OpenGL меньше 5 кадров в секунду. В настоящее время я использую Canvas для рисования своей игры, но теперь я собирался использовать OpenGL, чтобы реализовать систему частиц, которая может быть довольно интенсивной.

Теперь я запутался, если я не могу получить производительность на бюджетных устройствах с OpenGL, зачем мне его использовать? Разве это не так на большинстве устройств? Или, может быть, метод, используемый в SpriteMethodTest, не самый лучший (я еще не рассматривал код), как говорят некоторые люди?

0 голосов
/ 20 марта 2011

Это возможно только на эмуляторе или устройстве без графического процессора

0 голосов
/ 18 марта 2011

Я ... не могу ... комментировать ...

Это интересно, что у меня было всегда, хотя OpenGL также был быстрее.Из моего опыта работы с приложением я обнаружил, что GL намного быстрее, чем холст, но я использовал все числа с фиксированной точкой.

...