#android #opengl-es
#Android #opengl-es
Вопрос:
У меня есть игровой движок, но он очень медленный. Я получаю на 60-80 текстурированных квадратах (2 треугольника со смешением) около 30-40 кадров в секунду на моем Galaxy s. Это живые обои. Я получаю в своей легенде всего 10-20 кадров в секунду на 80 элементах…
Я использовал VBO, отбраковку и другие оптимизации. (я попробовал texture atlas, та же скорость, что и при привязке текстур …)
что я могу там сделать?
1. если я использую собственный код рендеринга opengl, это ускорит мой рендеринг? 2. если я использую сжатые текстуры PVRTC, а не png-файлы, это ускорит рендеринг? как я могу это сделать?
что я могу сделать?
Ответ №1:
ДА… Я полагаю, вы должны увидеть существенное ускорение, если переключитесь на использование NDK для OpenGL. Что касается PVRTC… Я не уверен на 100%, что это правильный путь. Это формат, оптимизированный для чипсетов PowerVR… так что да… это отлично подходит для множества телефонов Galaxy S… но на каждом телефоне с процессором Snapdragon установлен другой графический процессор (Adreno). Я понятия не имею, сможет ли графический процессор Adreno эффективно использовать это.
Комментарии:
1. хорошо, я видел разные сжатия, но сначала: как я могу загрузить текстуру .pvr в opengl? это что-то особенное?
2. К сожалению, я не уверен. Но поскольку многие телефоны не будут поддерживать расширение GL_IMG_texture_compression_pvrtc gl… Я бы, честно говоря, держался подальше. Тем не менее, все, что вам нужно знать, будет в PowerVR SDK. Погуглите, и у вас это будет.
Ответ №2:
Насколько мне известно, ни один графический процессор изначально не поддерживает изображения PNG в качестве формата текстуры. Они неизменно распаковываются API / драйвером в ARGB (вероятно, при 32 битах в секунду), так что это будет ударом с точки зрения объема памяти и, что более важно, потребления полосы пропускания. PNG на самом деле дает вам только сокращение объема распространения приложения и места для хранения во флэш-памяти.
При условии, что вы не слишком зациклены на качестве изображения, использование какой-либо формы сжатия текстур (с потерями), скажем, PVRTC (4bpp или 2bpp) или, возможно, ETC (4bpp), вероятно, приведет к повышению производительности.