Jawaban:
Ya, Untuk beberapa nama:
Proyeksi Pannini, misalnya, dapat menangkap bidang pandang yang luas dengan cara yang baik . (benar-benar hanya pendapat saya)
Saya pikir detail implementasi akan berada di luar cakupan pertanyaan khusus ini.
EDIT: Terima kasih atas komentarnya, saya salah mengeja Pannini. Dan untuk membuat pengeditan ini bermanfaat di sini ada beberapa lagi:
Itu tergantung pada apa yang Anda maksud dengan "yang dapat digunakan dalam sistem 3D seperti OpenGL". :)
Secara sempit, perangkat keras grafis 3D dan API seperti OpenGL hanya berurusan dengan benar dengan proyeksi linier - proyeksi yang memetakan garis lurus di ruang dunia ke garis lurus pada gambar. Mereka tidak pernah mengubah sesuatu menjadi bentuk melengkung (kecuali jika itu melengkung). Ini karena GPU bergantung pada segitiga yang memiliki tepi lurus untuk merasternya dengan benar di layar.
Jika kita membatasi diri pada proyeksi linier, tidak ada terlalu banyak pilihan. Selain orto dan perspektif standar, ada juga variasi "off-center" yang diperoleh dengan menggeser tampilan frustum.
Proyeksi ini dapat direpresentasikan dengan matriks proyeksi 4 × 4 yang biasa dan digunakan dalam API 3D tanpa masalah.
Lalu ada proyeksi nonlinear, yang tidak memiliki batasan pemetaan garis lurus ke garis lurus; mereka diizinkan untuk mengubah sesuatu menjadi kurva. Ada banyak dari ini, termasuk silindris, bola, berbagai jenis mata ikan, dan lainnya.
Dengan proyeksi nonlinear, Anda tidak bisa hanya menggunakan matriks proyeksi; Anda harus entah bagaimana mengimplementasikan proyeksi sendiri menggunakan shader. Salah satu caranya adalah dengan menulis custom vertex shader untuk melakukan proyeksi per vertex. GPU masih akan menggambar segitiga dengan garis lurus di antara simpul, jadi sementara segitiga kecil akan cukup dekat untuk dikoreksi, segitiga yang lebih besar akan terasa salah. Ini dapat menyebabkan masalah , dan geometri mungkin perlu dibagi lagi dengan sangat halus agar dapat dirender dengan benar.
Pendekatan kedua untuk mendapatkan proyeksi nonlinier adalah membuat adegan menggunakan proyeksi perspektif reguler terlebih dahulu (mungkin ke cubemap, yang memiliki proyeksi perspektif untuk setiap permukaan kubus), kemudian menerapkan pixel shader pasca-proses untuk mengubah sampel ke yang diinginkan proyeksi nonlinier. Ini memiliki keuntungan karena tidak memerlukan modifikasi geometri, tetapi ini bisa lebih mahal karena pekerjaan rendering tambahan yang diperlukan, dan hasilnya bisa buram di beberapa area jika render first-pass tidak memiliki resolusi yang cukup. Pendekatan pasca-proses digunakan oleh game Oculus Rift, misalnya, untuk mengimplementasikan proyeksi nonlinear yang dibutuhkan Rift untuk bekerja dengan lensanya.
Saya tidak percaya tapi tidak ada yang menyebutkan Proyeksi Isometrik yang dulunya sangat umum.