คุณสามารถสร้างบัฟเฟอร์ looong "vertex; texcoord" ซ้ำได้ และเพียงแค่ใช้ดัชนีตามที่คุณพูด มันง่ายที่สุดและเป็นไปได้คล้ายกับสิ่งที่คุณรู้
ถ้าคุณต้องการที่จะบันทึกหน่วยความจำบางส่วน มีวิธีแก้ปัญหาที่เรียบร้อยและมีสไปรต์หนึ่งบัฟเฟอร์ด้วย unite texcoords และสร้างเมทริกซ์การแปลง UV และส่งไปที่ shader และ texcoords คูณด้วย (ใน shader ที่จุดสุดยอด)
คุณไม่จำเป็นต้องสร้างเมทริกซ์ด้วยตัวเองถ้าคุณไม่สบายใจ คุณสามารถใช้ฟังก์ชัน GL ปกติและอ่านเมทริกซ์กับglGetFloatv
ฟังก์ชัน แบบนี้:
glGetFloatv (GL_MODELVIEW_MATRIX ,&g_TexCoordMat);
ฉันสร้างภาพเพื่ออธิบายได้ดีขึ้น glTranslate ang glScale สามารถดูได้ว่าพวกมันกำลังเคลื่อนที่โดยใช้พื้นที่รังสียูวี
หากคุณไม่ทราบวิธีการส่งเมทริกซ์ไปยัง shader ฉันสามารถแบ่งปันรหัสกับคุณได้
แก้ไข:เพิ่มรูปภาพ
(แหล่งที่มาสำหรับ spritesheet i ที่ใช้: funorb.com )