Ketika menerapkan beberapa tekstur ke mesh, seperti untuk pemetaan-benjolan, saya biasanya mengikat tekstur ke beberapa unit tekstur tetap pertama, misalnya: difuse = unit 0, bump = unit 1, specular = unit 2, kemudian tetap menggunakan kembali masing-masing untuk masing-masing jala yang berbeda dengan tekstur yang berbeda. Tapi saya selalu bertanya-tanya mengapa glActiveTexture
mendukung begitu banyak unit tekstur (dalam tautan sebelumnya, katanya setidaknya 80).
Jadi terpikir oleh saya bahwa satu cara yang mungkin untuk mengelola tekstur adalah dengan mengikat tekstur yang berbeda untuk setiap unit yang tersedia dan membiarkannya diaktifkan, hanya memperbarui indeks sampel seragam. Itu akan meningkatkan rendering perf dengan mengurangi jumlah switch tekstur. Jika Anda memiliki tekstur lebih sedikit daripada unit tekstur maks, Anda tidak perlu melepaskan ikatan tekstur.
Apakah ini praktik standar pada aplikasi OpenGL real-time (saya percaya ini juga berlaku untuk D3D)? Dan apakah ada implikasi kinerja yang tidak jelas dari mengambil pendekatan ini? Memori overhead mungkin?