Вам неизбежно придется выбрать поддиапазон от 0 до 1 для координат текстуры. Только glTexSubImage2D (пере) определяет часть текстуры, оставляя общие размеры такими, какими они были.
Вычисление правильных значений поддиапазона немного ненормально: скажем, ваша общая текстура имеет ширину 8 пикселей, пиксели 3… 6 имеют фактическое содержимое, а затем карту координат текстуры, как показано ниже:
2/8 6/8
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
^ ^
0.0 1.0
Итак, используемые текстуры:
(t0 - 1) / N… (t1) / N; t0, t1, N в пикселях.
Если вы хотите адресовать свою подтекстуру в диапазоне 0… 1 по параметру tau , формула будет
ш: = t1 - t0
u = (t0 - 1) / N + w * tau