Mengapa lebar dan tinggi dibagi 2 dalam matriks proyeksi perspektif?

9

Saya menggunakan OpenGL untuk belajar grafik komputer. Saya mencoba memahami matriks proyeksi. Berikut ini ditunjukkan dalam 'Buku Merah' OpenGL:

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Saya tidak mengerti mengapa lebar dan tinggi dibagi 2?

mikeglaz
sumber

Jawaban:

11

Karena xhalrHaij tidak berbeda dari 0wsayadth, bervariasi dari -wsayadth2wsayadth2.

Yang penting bukan lebarnya, tetapi nilai minimum dan maksimum xhalrHaij. Karena(0,0) berada di tengah viewport, bukan sudut, nilai min dan maks adalah plus dan minus setengah dari lebar.


BTW, Buku Merah bukanlah pengantar grafis yang bagus secara umum. Ini adalah standar teknis, bukan tutorial, jadi penjelasan konsep cukup untuk menjadi tidak ambigu - itu tidak mencoba untuk mengajarkan materi. Ini juga tentang pustaka rendering pindailine khususnya, jadi ada banyak konsep penting yang tidak dijelaskan sama sekali, seperti apa BRDF yang penting, bagaimana mereka berhubungan dengan properti permukaan dunia nyata, apa sebenarnya gambar itu, dan banyak teknik tingkat yang lebih tinggi.

Dan akhirnya, bahkan di area sekitar - bagaimana menggunakan GPU untuk mempercepat rendering - sudah ketinggalan zaman. Arsitektur GL didasarkan pada GPU sejak 20 tahun yang lalu. Meskipun banyak fitur telah ditambahkan untuk mengikuti perubahan pada perangkat keras, abstraksi mendasar bukanlah cara yang baik untuk memahami arsitektur GPU saat ini.

Jika Anda ingin belajar tentang teori grafik komputer, mulailah dengan buku teks yang tepat seperti Rendering Berbasis Fisik atau Grafik Komputer: Prinsip dan Praktek, atau kursus online. Jika Anda ingin mempelajari cara membuat aplikasi 3D, mulailah dengan tutorial tentang jenis aplikasi yang Anda minati (mis. Jika ini adalah game, cobalah tutorial Unity).

Dan Hulme
sumber
Wow, inilah tepatnya yang saya cari. Saya mulai membaca buku teks Aljabar Linier ... tetapi jenis matematika apa yang perlu saya ketahui untuk rendering berbasis fisik?
mikeglaz
2
Tunggu, maksudmu "Karena xhalrHaij tidak berbeda dari 0wsayadth"?
mikeglaz
Untuk openGL perlu memproyeksikan ke koordinat perangkat yang dinormalisasi (-1 ke 1) sehingga skala dari -Lebar / 2 ke Lebar / 2
PaulHK
Anda harus mengajukan pertanyaan lain tentang PBR, tetapi di sini ada sumber yang bagus: learnopengl.com/#!PBR/Theory
Alan Wolfe
@mikeglaz saya lakukan, terima kasih. Saya akan mengatakan jika Anda tahu beberapa aljabar linier sarjana dan optik SMA, Anda baik-baik saja. Setiap keterangan yang belum Anda pahami, Anda akan memiliki landasan untuk memahami dengan membaca halaman Wikipedia yang sesuai.
Dan Hulme