Saat ini saya akan kuliah untuk ilmu komputer. Meskipun saya berencana untuk menggunakan mesin yang ada di beberapa titik untuk membuat game kecil, tujuan saya saat ini adalah mempelajari dasar-dasarnya: yaitu pemrograman 3D. Saya sudah melakukan beberapa penelitian mengenai pilihan antara DirectX dan OpenGL, dan sentimen umum yang muncul adalah bahwa apakah Anda memilih OpenGL atau DirectX sebagai platform roda pelatihan Anda, banyak pengetahuan dapat ditransfer ke platform lain. . Karena itu, karena OpenGL didukung oleh lebih banyak sistem (mungkin alasan konyol untuk memilih apa yang harus dipelajari), saya memutuskan bahwa saya akan belajar OpenGL terlebih dahulu.
Setelah saya membuat keputusan untuk mempelajari OpenGL, saya melakukan penelitian lebih lanjut dan menemukan tentang dikotomi yang entah bagaimana tidak saya ketahui selama ini: fungsi tetap OpenGL vs OpenGL modern berbasis shader yang dapat diprogram. Pada awalnya, saya pikir itu adalah pilihan yang jelas bahwa saya harus memilih untuk belajar OpenGL berbasis shader karena itulah yang paling umum digunakan dalam industri saat ini. Namun, saya kemudian menemukan Pemrograman Grafis 3D Pembelajaran Modern yang sangat populer oleh Jason L. McKesson, yang berlokasi di sini: http://www.arcsynthesis.org/gltut/
Saya membaca bagian-bagian pengantar, dan di bagian "Tentang Buku Ini", penulis menyatakan:
"Pertama, banyak hal yang dipelajari dengan pendekatan ini harus ditinggalkan ketika pengguna menemukan masalah grafis yang harus diselesaikan dengan kemampuan program. Kemampuan program menghapus hampir semua pipa fungsi tetap, sehingga pengetahuan tidak mudah ditransfer."
namun pada saat yang sama juga membuat kasus bahwa fungsi-tetap menyediakan kurva belajar yang lebih mudah dan lebih langsung untuk pemula dengan menyatakan:
"Secara umum dianggap paling mudah untuk mengajar pemrogram grafis orang baru menggunakan pipa fungsi tetap."
Secara alami, Anda dapat melihat mengapa saya mungkin berkonflik tentang paradigma mana yang harus dipelajari: Apakah saya menghabiskan banyak waktu untuk belajar (dan kemudian tidak mempelajari) cara-cara memperbaiki fungsi, atau apakah saya memilih untuk memulai dengan shader? Perhatian utama saya adalah bahwa shader modern yang dapat diprogram, entah bagaimana, membutuhkan programmer untuk sudah memahami pipeline fungsi tetap, tapi saya ragu itulah masalahnya.
TL; DR = Sebagai seorang programmer grafis yang bercita-cita tinggi, apakah saya tertarik mempelajari pemrograman 3D melalui fungsi tetap atau pemrograman berbasis shader modern?