Saya ingin bertanya apakah ada praktik terbaik untuk mengatur Effect
parameter di XNA. Atau dengan kata lain, apa yang sebenarnya terjadi ketika saya menelepon pass.Apply()
. Saya bisa membayangkan beberapa skenario:
- Setiap kali
Apply
dipanggil, semua parameter efek ditransfer ke GPU dan karenanya tidak memiliki pengaruh nyata seberapa sering saya menetapkan parameter. - Setiap kali
Apply
dipanggil, hanya parameter yang direset yang ditransfer. Jadi caching Set-operasi yang tidak benar-benar menetapkan nilai baru harus dihindari. - Setiap kali
Apply
dipanggil, hanya parameter yang diubah yang ditransfer. Jadi caching Set-operasi tidak berguna. - Seluruh pertanyaan ini tidak dapat dibooting karena tidak ada satu pun dari cara yang disebutkan yang memiliki dampak penting pada kinerja game.
Jadi pertanyaan terakhir: Apakah berguna untuk mengimplementasikan beberapa caching operasi set seperti:
private Matrix _world;
public Matrix World
{
get{ return _world; }
set
{
if (value == world) return;
_effect.Parameters["xWorld"].SetValue(value);
_world = value;
}
}
Terima kasih atas antisipasi.