Saya sudah mencoba membuat formula untuk matriks proyeksi di mana sumbu vertikal Anda diproyeksikan secara ortografis tetapi sumbu horizontal Anda akan memiliki perspektif untuk itu.
Jadi tampilan frustum akan terlihat seperti ini:
Saya mempelajari bagaimana rumus proyeksi ortografis dan proyeksi perspektif dan bagaimana mereka mencapai mana. Dan mencoba memodifikasi mereka untuk mencoba mencapai proyeksi yang saya inginkan. Sepertinya saya tidak mungkin untuk memiliki satu skala sumbu ke Z dan yang lainnya tidak (atau memiliki skala pada faktor yang berbeda).
Mungkinkah untuk mencapai perspektif yang saya inginkan? Jika demikian, seperti apa bentuk proyeksi matriks?
3d
rendering
projection-matrix
Pepijn Willekens
sumber
sumber
Jawaban:
Matriks proyeksi ini harus melakukan trik:
r = setengah lebar nearplane
t = setengah ketinggian nearplane
f = jarak ke pesawat jauh
n = jarak ke dekat pesawat
Jadi misalnya, coba pilih:
r = 0,1 (lebar akan menjadi 0,2)
t = 0,5 (tinggi akan 1,0)
f = 1000 (pesawat jauh pada jarak 1000)
n = 1 (nearplane pada jarak 1)
sumber
Sayangnya, saya tidak berpikir ini mungkin dengan hanya mengubah matriks proyeksi. Setelah matriks proyeksi, koordinat layar akhir dihitung dengan membagi (x, y, z) dengan w. Untuk matriks perspektif, w diatur ke z. Untuk matriks ortografis, w diatur ke 1. Anda tidak dapat memiliki nilai w yang berbeda untuk horizontal versus vertikal. Jawaban lain untuk pertanyaan ini hanyalah matriks ortografi standar.
Jika Anda memiliki akses ke shader itu sendiri dan bersedia menambahkan langkah lain, Anda bisa menggunakan proyeksi ortografis tetapi melakukan koreksi perspektif horizontal secara manual.
sumber