Привет всем, я переработал приложение для Android, чтобы использовать OpenGL вместо холста (так как он нехорошо медленный), и мне было интересно, так как я использую плиточный лист (атласная текстура), было бы быстрее использовать VBO или draw_texture с установленным урожаем:
// Crop our texture
((GL11) gl).glTexParameteriv(GL10.GL_TEXTURE_2D, GL11Ext.GL_TEXTURE_CROP_RECT_OES, cropRect[cropIndex], 0);
gl.glColor4f(1, 1, 1, 1);
После прослушивания Криса Прюетта я понял, что draw_texture, несомненно, самый быстрый для отдельного спрайта, но если я обрезаю атлас, это все еще верно?
было бы быстрее использовать VBO или draw_texture
Обратите внимание, что он использует "черепичный мир", который объясняет, почему он использует эту технику. Если вы не используете черепичный мир, вы, вероятно, должны пойти с draw_texture
.
После прослушивания Криса Прюетта я понял, что draw_texture, несомненно, самый быстрый для отдельного спрайта, но если я обрезаю атлас, это все еще верно?
Не всегда. Если вы используете большую текстуру атласа со многими спрайтами, функция glTexParameteriv()
будет слишком дорогой. Если вы используете меньшее количество спрайтов, это, вероятно, будет быстрее, что также зависит от количества вызовов функции glTexParameteriv()
.
draw_texture
иglTexParameteriv()
.