Как избежать правила POT для текстур Opengl: наложить прозрачное растровое изображение без растрового изображения?

#opengl-es #textures

#opengl-es #Текстуры

Вопрос:

мне нужно загрузить растровые изображения без горшков в мое приложение opengl es для Android.

Что мне нужно, так это наложить мое растровое изображение без горшков на другое растровое изображение с размером ГОРШКОВ. Мне нужно перекрыть растровое изображение без горшков в центре растрового изображения в горшке.

Как я могу это сделать?

я пробовал с createScaledBitmap, но оно растягивает изображение, а я этого не хочу.

Спасибо

Ответ №1:

Способ сделать это — не проецировать NPOT на POT, а загружать POT и соответствующим образом манипулировать UV-координатами в буфере текстурных координат. Прямо сейчас у вас, вероятно, есть что-то вроде этого:

 private float textureCoords[] = {
        0.0f, 1.0f,
        0.0f, 0.0f,
        1.0f, 1.0f,
        1.0f, 0.0f          
};
  

Для УФ-отображения текстуры на четырехугольник. Изменение значений на что-то другое, кроме 0.0 или 1.0, приведет к соответствующей обрезке. Убедитесь, что вы правильно выбрали эти значения, иначе какой-то цвет попадет в ваше изображение.