Saya telah menggali sedikit ke dalam apa yang sebenarnya terjadi pada tingkat perangkat keras pada GPU, dan menemukan NVidia's Life of a triangle yang menjelaskan pipa dengan cukup baik, setidaknya untuk kotak hijau. Satu hal yang saya tidak jelas adalah apa yang terjadi dengan jerat berindeks, ketika simpul yang sama digunakan untuk sekelompok segitiga yang berbeda. Karena data umumnya tidak bertahan lebih lama dari yang diperlukan dalam prosesor aliran, saya menduga verteks hanya dihancurkan setelah dirasterisasi, kemudian diambil dan dijalankan melalui vertex shader lagi setiap kali muncul dalam segitiga baru. Adakah yang bisa mengkonfirmasi ini? Juga, apa yang terjadi dalam mode strip-strip atau segitiga-strip? Apakah GPU mempertahankan data vertex yang ditransformasikan di suatu tempat sampai 2 atau 3 primitif yang relevan telah dirasterisasi dalam kasus ini?
8
Itu tergantung pada seberapa jauh jarak vertex digunakan kembali.
Misalnya kuadrat
0, 1, 2, 2, 1, 3
akan memiliki interval yang cukup pendek sehingga simpul1
dan2
akan digunakan kembali. Tetapi jika ada seratus titik di antara penggunaan kembali maka kemungkinan besar tidak akan ada penggunaan kembali.Tetapi ketika mereka jauh lebih jauh maka vertex akan jatuh dari cache dan harus diproses ulang oleh shader vertex.
Inilah sebabnya mengapa beberapa perangkat lunak 3D memiliki cara untuk meningkatkan lokalitas simpul untuk jerat yang diindeks dengan menyusun kembali simpul.
sumber