Harmonik bola
Jika Anda tahu apa itu transformasi Fourier, Anda sudah hampir tahu apa itu harmonik bola: mereka hanya transformasi Fourier tetapi pada bola bukannya basis linear. Yaitu, sementara transformasi Fourier adalah cara berbeda untuk mewakili fungsi , harmonik bola adalah hal yang analog dengan fungsi kutub .f ( θ , ϕ )f(x)f(θ,ϕ)
Jika Anda tidak tahu apa itu transformasi Fourier, Anda perlu tahu sebelum Anda dapat memahami harmonik bola. Transformasi Fourier memungkinkan Anda menghadirkan sinyal sebagai serangkaian gelombang sinus dan kosinus, masing-masing dengan frekuensi dua kali lipat dari yang terakhir. Artinya, Anda dapat mewakili sinyal sebagai rata-rata, ditambah gelombang sinus yang panjang gelombangnya sama dengan panjang sinyal, ditambah gelombang sinus dua kali panjang gelombang itu, dan seterusnya. Karena transformasi Fourier membuat Anda sesuai dengan panjang gelombang ini, Anda hanya perlu merekam amplitudo masing-masing.
Kami biasanya menggunakan transformasi Fourier untuk mewakili gambar, yang hanya merupakan sinyal digital 2D. Ini berguna karena Anda dapat membuang beberapa gelombang sinus (atau mengurangi presisi yang digunakan untuk menyimpan amplitudo mereka) tanpa secara signifikan mengubah seperti apa gambar itu bagi mata manusia. OTOH, membuang piksel mengubah banyak gambar.
Dalam sinyal sampel seperti gambar, jika Anda menggunakan jumlah gelombang sinus yang sama dengan sampel (piksel) dalam gambar asli, Anda dapat merekonstruksi gambar dengan tepat, jadi setelah Anda mulai membuang frekuensi apa pun, Anda membuat gambar mengambil lebih sedikit penyimpanan.
Harmonik bola seperti transformasi Fourier, tetapi alih-alih gelombang sinus, mereka menggunakan fungsi bola, jadi alih-alih fungsi linear (seperti gambar), mereka dapat mewakili fungsi yang didefinisikan pada bola (seperti peta lingkungan).
Probe cahaya
Seperti halnya gambar standar merekam semua cahaya yang mencapai titik tertentu melalui bidang gambar, probe cahaya merekam semua cahaya yang mencapai titik tertentu dari segala arah. Mereka pertama kali keluar dari efek film. Jika Anda ingin menambahkan objek yang dihasilkan komputer ke adegan dunia nyata, Anda harus dapat menerangi objek sintetis dengan pencahayaan dunia nyata. Untuk melakukan itu, Anda perlu tahu cahaya apa yang mencapai titik di adegan di mana objek sintetis akan berada. (NB Meskipun saya mengatakan "pencahayaan", Anda sedang merekam gambar dari semua cahaya, sehingga dapat digunakan untuk refleksi juga.)
Karena Anda tidak dapat memiliki kamera dengan lensa bola yang merekam semua cahaya yang mencapai satu titik dari semua arah, Anda merekam ini dengan mengambil foto normal dari cermin bulat, dan kemudian memproyeksikan ulang gambar ke bola.
Di luar efek film, lebih umum menggunakan probe cahaya yang dihasilkan dari adegan buatan. Bayangkan Anda memiliki beberapa algoritma mahal untuk menghitung penerangan global (GI) dalam sebuah adegan, dan Anda juga memiliki beberapa objek yang lebih kecil bergerak dalam adegan ini (seperti tingkat permainan dengan pemain di dalamnya). Anda tidak dapat menjalankan keseluruhan algoritma GI setiap kali objek bergerak, jadi Anda menjalankannya sekali dengan adegan statis, dan menyimpan probe cahaya yang diambil di berbagai titik di level. Kemudian Anda bisa mendapatkan perkiraan yang baik untuk GI dengan menyalakan pemain dengan probe cahaya mana pun yang paling dekat dengannya.
Menggunakannya bersama
Secara umum Anda ingin menyaring sisi tajam dalam pencahayaan global Anda, jadi Anda ingin cara untuk mewakili mereka yang ringkas dan mudah memungkinkan Anda membuang frekuensi tinggi. Itulah yang benar-benar bagus dalam harmonik bola! Itu sebabnya Anda akan sering mendengar dua istilah ini digunakan bersama.
Anda menghitung probe cahaya dengan algoritma GI mahal Anda - biasanya di alat desain level, atau mungkin sekali per detik (bukan sekali per frame) jika Anda ingin menyertakan objek dinamis Anda. Anda menyimpan yang murah dengan harmonik bola - 16 pelampung cukup untuk penerangan berkualitas tinggi, tetapi bukan pantulan. Kemudian untuk setiap objek dinamis yang ingin Anda nyalakan, Anda memilih probe cahaya terdekat (atau menyatukan beberapa objek secara linear) dan menggunakannya sebagai input seragam atau konstan ke shader Anda. Ini juga biasa untuk menggunakan harmonik bola untuk mewakili data oklusi ambien, dan itu sangat murah untuk berbelit-belit dengan probe cahaya, meskipun ada beberapa kompleksitas di sekitar memutar fungsi harmonik bola.