Чтобы получить максимальную точность, вы можете использовать значения 0..32767 для указания координат текстуры как GL_SHORT, чтобы указать значения от 0.0f до 1.0f.Тогда вы получите точность 1/32767, которая приблизительно равна 0,00003.Вам этого достаточно?- это зависит от вас и вашего заявления.Скорее всего, вам этого будет достаточно.
Чтобы указать какое-либо значение в диапазоне от 0 до 1, либо используйте матрицу текстуры с масштабированием (если вы используете GLES1), либо просто умножьте координату текстуры на правильную форму масштабирования в своем фрагменте.шейдер (если вы находитесь на GLES2).
Вот простой пример для GLES1 - допустим, ваша текстура 100x200, и вам не нужно указывать координаты текстуры с меньшей точностью, чем 1 тексель.Затем вы можете установить масштаб текстуры матрицы для следующих факторов - 1/100 и 1/200:
glMatrixMode(GL_TEXTURE);
glPushMatrix();
glLoadIdentity();
glScalex(65536/100, 65536/200, 1);
glMatrixMode(GL_MODELVIEW);
После этого в вашем массиве / буфере вершин вы можете использовать:
- (0, 0) для указания значения (0.0f, 0.0f)
- (10, 40) для указания значения (10 / 100.0f, 40 / 200.0f) = (0.1f, 0.2f)
- (100, 200) для указания значения (1.0f, 1.0f).