История изменений
Исправление andreyu, (текущая версия) :
Не помню уже, с чем это было связано (два года назад игрался), вроде были какие-то траблы на старых GPU типа PowerVR SGX 530 и Vivante GC860. Потому и решил прикрепить дополнительный буфер с корректной текстурой в GL_UNSIGNED_SHORT_5_6_5, так как с ней проблем не было.
Вместо GL_LUMINANCE/GL_UNSIGNED_BYTE можно использовать GL_RED или GL_ALPHA и соответствующий шейдер (брать r или a канал текстуры).
Я это к тому, что кроме экономии текстурной памяти, экономится время на заполнение буфера и время на аплоад в текстурную память.
А экономия получается в два раза, что весьма существенно.
Из того, что ещё помню, на всех PowerVR был белый экран, если сгенерированная текстура была NPOT.
Если использовать gles1, то текстуры должны быть pot. Если использовать gles2, то поддержка npot должна быть.
При использовании gles1 можно проверять соответствующее расширение. Но лучше просто использовать pot текстуры. В общем случае выборка из pot текстур получается быстрее.
Исходная версия andreyu, :
Не помню уже, с чем это было связано (два года назад игрался), вроде были какие-то траблы на старых GPU типа PowerVR SGX 530 и Vivante GC860. Потому и решил прикрепить дополнительный буфер с корректной текстурой в GL_UNSIGNED_SHORT_5_6_5, так как с ней проблем не было.
Вместо GL_LUMINANCE/GL_UNSIGNED_BYTE можно использовать GL_RED или GL_ALPHA и соответственный шейдер (брать r или a канал текстуры).
Я это к тому, что кроме экономии текстурной памяти экономится и время заполнения буфера, и время аплоада в текстурную память.
А экономия получается в два раза, что весьма существенно.
Из того, что ещё помню, на всех PowerVR был белый экран, если сгенерированная текстура была NPOT.
Если использовать gles1, то текстуры должны быть pot. Если использовать gles2, то поддержка npot должна быть.
При использовании gles1 можно проверять соответствующее расширение. Но лучше просто использовать pot текстуры. В общем случае выборка из pot текстур получается быстрее.