Bạn luôn có thể lặp lại bộ đệm looong "vertex; texcoord". Và chỉ sử dụng các chỉ số như bạn đã nói. Nó dễ dàng nhất và tương tự như những gì bạn biết.
Nếu bạn muốn tiết kiệm một số bộ nhớ. Có một giải pháp khá gọn gàng và đó là có một sprite trong bộ đệm với hợp nhất texcoords và tạo ma trận biến đổi UV và gửi nó tới shader của bạn và nhân texcoords với nó (trong shader đỉnh).
Bạn không phải tự tạo ma trận nếu bạn không ổn với điều đó. Bạn chỉ có thể sử dụng các hàm GL thông thường và hơn là đọc ma trận với glGetFloatv
hàm. Như thế này:
glGetFloatv (GL_MODELVIEW_MATRIX ,&g_TexCoordMat);
Tôi đã tạo ra hình ảnh để mô tả nó tốt hơn. glTranslate ang glScale có thể được xem như chúng chỉ đang di chuyển với cơ sở không gian UV.
Nếu bạn không biết cách gửi ma trận tới shader tôi có thể chia sẻ một số mã với bạn.
Chỉnh sửa: Đã thêm hình ảnh
(nguồn cho spritesheet tôi đã sử dụng: funorb.com )