Координаты вершин находятся в диапазоне от 0 до 1, так что вы можете использовать данные вершин со многими различными текстурами, не беспокоясь о размерах изображения.Тем не менее, для совершенных операций с пикселями вам часто приходится часто координаты текстуры делить на ширину пикселя изображения (скажем, 0.5f * (float) image-> width ()) и высоту, чтобы обеспечить выборку OpenGl (или d3D)с правильного места.
Что касается деления сетки, прямая простая линейная интерполяция.Если у вас есть сетка, идущая от координат пикселей от 0 до 100, и вы хотите, чтобы в вашей сетке было 10 шагов, вы начинаете с 0 и с шагом в 10 пикселей:
vertex_xi = (start_x + ((end_x - start_x) / 10) * i));
vertex_yi = (start_y + ((end_y - start_y) / 10) * i));
аналогично ,, для координат текстуры выделали то же самое, только вы обычно называете их так:
vertex_ui = (start_u + ((end_u - start_u) / 10) * i));
vertex_vi = (start_v + ((end_v - start_v) / 10) * i));
, где 'start_u' и 'start_v' равны '1.0f +/- offset, а end' end_u 'и' end_v 'are'1.0f +/- смещение '.Поместите их в свой массив вершин, и все будет хорошо.
HTH.