Saya sedang menulis mesin permainan, dan ketika saya menggunakan kamera perspektif saya mendapatkan layar hitam. Saya tidak akan bertanya persis mengapa ini karena akan ada banyak kode untuk dibagikan dan, terus terang, saya pikir itu adalah pertanyaan kecil bahkan mengganggu Anda semua.
Masalahnya adalah saya tidak tahu cara men-debug-nya. Semua perubahan itu adalah matriks proyeksi saya, dan jika matriks proyeksi saya terlihat bagus, saya tidak tahu mengapa itu tidak berhasil. Idealnya saya mencetak nilai-nilai dari berbagai hal sebagai shader melakukan perhitungan, tetapi GLSL tidak nyaman tidak memiliki fungsi printf ().
Jadi pertanyaan saya adalah: bagaimana cara men-debug masalah saya? Satu-satunya hal yang bisa saya pikirkan adalah memeriksa nilai sebanyak yang saya bisa sisi klien dan kemudian pemrograman dengan permutasi, tapi saya sudah melakukan itu dan tidak mendapatkan apa-apa. Apakah ada cara saya bisa melihat apa yang terjadi di kartu video? Apakah ada teknik yang sama sekali berbeda yang bisa saya gunakan?
Saya menggunakan GLSL versi 420 (dan fitur khusus untuk versi itu), jadi saya tidak berpikir bahwa glslDevil adalah pilihan, mengingat itu terakhir diperbarui pada 2010.
EDIT
Saya berhasil memecahkan masalah saya melalui beberapa debugging yang sama sekali tidak terkait.
Meskipun saya tidak yakin, NVIDIA Nsight seharusnya dapat men-debug Shader, setidaknya saya pikir itu mendukung GLSL di beberapa versi sebelumnya (yang seharusnya dapat Anda temukan). Ini terintegrasi cukup baik dengan Visual Studio, tidak mudah tetapi memiliki banyak hal berguna, tetapi dalam versi yang lebih lama Anda membutuhkan 2 mesin dengan GPU masing-masing untuk men-debug shader melalui jaringan (sementara versi terbaru mengatakan itu memungkinkan debugging "lokal") . Juga, periksa Shader Designer [2] yang tampaknya merupakan IDE yang berguna (tetapi kurang debugging GLSL).
[1] http://developer.nvidia.com/content/nvidia-nsight-visual-studio-edition
[2] http://www.opengl.org/sdk/tools/ShaderDesigner/
sumber
Sayangnya debugging OpenGL tidak mudah. Berikut adalah hal-hal yang menurut saya berguna:
sumber
Secara pribadi saya masih menggunakan RenderMonkey. Namun itu tidak sepenuhnya cocok untuk pertanyaan yang tepat ini karena itu hanya fasad dari aplikasi nyata dan karenanya memiliki beberapa batasan aneh. Tidak ada dukungan, tetapi saya belum menemukan yang lebih baik untuk debugging GLSL.
sumber