Размер текстуры Android OpenGL ES в степени 2

Я уже знаю, что для многих аппаратных средств требуются текстуры со степенью двойки. Но обязательны ли квадратные размеры изображения? Я имею в виду 32x32 64x64 512x512. Могу ли я использовать текстуру размером 512x256 на каждом оборудовании?


person droidmachine    schedule 16.07.2012    source источник


Ответы (2)


Да, текстура может быть не квадратной, это не проблема. Пока вы сохраняете ширину и высоту в два раза.

person Mārtiņš Možeiko    schedule 16.07.2012

Нет, это должно быть 2base. Однако вы можете обойти это, добавив черные полосы вверху и/или внизу вашего изображения, а затем используя массив координат текстуры, чтобы ограничить, где текстура будет отображаться на вашем изображении. Например, предположим, что у вас есть текстура размером 13 x 16 пикселей. Вы можете добавить 3 пикселя черного цвета справа, а затем сделать следующее:

static const GLfloat texCoords[] = {
    0.0, 0.0,
    0.0, 13.0/16.0,
    1.0, 0.0,
    1.0, 13.0/16.0
};

так что вы можете иметь любой размер сейчас

person Community    schedule 17.07.2012