Ах.Итак, вы хотите визуализировать источник не в POT.Это может быть сделано без разделения на несколько текстур - путем создания текстуры самого близкого размера POT, рендеринга в нее и размывания только той части, которая фактически содержит изображение.Посмотрите здесь для примера (C ++).Соответствующие части:
//Calculating the texture size
double exp = ceil(log((double)max(Texture.HardwareHeight, Texture.HardwareWidth))/log(2.0));
texsize = min(pow(2, exp), (double)maxSize);
, затем
//draw the original frame 1:1 into the (larger) texture
float ymax = min(2.0f*((float)Texture.HardwareHeight/(float)texsize) - 1.0f, 1.0f); //clamping is for cards with
float xmax = min(2.0f*((float)Texture.HardwareWidth/(float)texsize) - 1.0f, 1.0f); //smaller max hardware texture than the current frame size
Используйте эти максимальные значения вместо 1,0 в качестве координат текстуры при рендеринге.