Bagaimana penyelidikan cahaya berbeda dari peta kubus lingkungan?

17

Melihat tekstur probe cahaya, sepertinya peta lingkungan buram.

Apa perbedaan antara keduanya, bagaimana probe cahaya dibuat, dan apa manfaatnya menjadi buram?

Alan Wolfe
sumber
3
Jawaban singkat: "probe cahaya" biasanya berarti representasi harmonik bola lingkungan yang kompak. Keduanya buram karena sangat kompak (hanya beberapa puluh byte penyimpanan) dan karena mereka difilter untuk digunakan sebagai pencahayaan difus. Saya akan memperluas ke jawaban yang lebih panjang ketika saya memiliki kesempatan. :)
Nathan Reed
Apakah ada konteks untuk pertanyaan Anda? Istilah 'penyelidikan cahaya' bersifat ambivalen dan digunakan secara berbeda dalam berbagai skenario, algoritma, dan mesin.
David Kuri
Khususnya, jika Anda pernah ke shadertoy.com Anda akan melihat dua set peta kubus yang tersedia untuk digunakan. Satu set adalah peta lingkungan, set lainnya terlihat sama tetapi buram yang diberi label probe cahaya. Hanya ingin tahu tentang hal itu dan penyelidikan cahaya secara umum.
Alan Wolfe

Jawaban:

18

Ada dua arti umum yang berbeda dari "penyelidikan cahaya" yang saya sadari. Keduanya mewakili cahaya di sekitar satu titik dalam sebuah adegan, yaitu apa yang akan Anda lihat di sekitar Anda ke segala arah jika Anda menyusut ke ukuran kecil dan berdiri di titik itu.

Salah satu artinya adalah representasi harmonik bola cahaya di sekitar titik. Harmonik bola adalah kumpulan fungsi yang didefinisikan pada domain bola, yang analog dengan gelombang sinus yang berosilasi beberapa kali di sekitar khatulistiwa dan dari kutub ke kutub di bola.

Harmonik bola dapat digunakan untuk membuat aproksimasi halus dan beresolusi rendah dari fungsi bola, dengan menskalakan dan menambahkan sejumlah harmonik bola — biasanya 4 (dikenal sebagai SH linier, derajat pertama, atau satu-band) atau 9 ( disebut kuadrat, derajat dua, atau dua-band SH). Ini sangat kompak karena Anda hanya perlu menyimpan faktor penskalaan. Misalnya, untuk kuadratik SH dengan data RGB, Anda hanya perlu 9 * 3 = 27 nilai per probe. Jadi SH membuat representasi cahaya yang sangat kompak, tetapi juga sangat lembut dan buram di sekitar titik. Ini cocok untuk pencahayaan difus, dan mungkin specular dengan kekasaran tinggi.

Tangkapan layar ini dari Simon's Tech Blog menunjukkan serangkaian probe cahaya SH yang ditempatkan di seluruh adegan, masing-masing menunjukkan pencahayaan tidak langsung yang diterima pada saat itu:

Array probe SH cahaya

Arti lain yang saat ini lazim dari "penyelidikan cahaya" adalah peta kubus lingkungan yang tingkat mipnya telah diburamkan sebelumnya hingga memanjang berbeda sehingga dapat digunakan untuk pencahayaan specular dengan berbagai tingkat kekasaran. Gambar dari blog Seb Lagarde ini menunjukkan ide dasar:

Level mip cubemap yang disaring sebelumnya

Mips dengan resolusi lebih tinggi (ke kiri) digunakan untuk permukaan yang sangat halus di mana Anda membutuhkan gambar yang dipantulkan secara terperinci. Ke arah kanan, level mip res-rendah semakin kabur, dan digunakan untuk refleksi dari permukaan yang lebih kasar. Dalam shader, saat mengambil sampel cubemap ini, Anda dapat menghitung tingkat mip yang Anda minta berdasarkan kekasaran material, dan memanfaatkan perangkat keras pemfilteran trilinear.

Kedua jenis probe cahaya ini digunakan dalam grafik waktu nyata untuk memperkirakan pencahayaan tidak langsung. Sementara pencahayaan langsung dapat dihitung secara real-time (atau setidaknya baik untuk lampu area), pencahayaan tidak langsung biasanya masih dipanggang dalam proses offline karena kompleksitas dan overhead komputasi.

Secara tradisional, hasil dari proses pemanggangan adalah lightmaps, tetapi lightmaps hanya berfungsi untuk pencahayaan difus pada geometri statis, dan mereka mengambil banyak memori selain itu. Memanggang banyak probe cahaya SH (Anda bisa membeli banyak dari mereka karena mereka sangat kompak), ditambah taburan probe cahaya cubemap yang lebih jarang, memungkinkan Anda untuk mendapatkan pencahayaan tidak langsung difus dan specular yang layak pada objek statis dan dinamis. Mereka adalah opsi yang populer di permainan hari ini.

Nathan Reed
sumber
Penjelasan hebat! Hanya untuk mengonfirmasi tentang bagian tentang penggunaan pemfilteran trilinear pada mips ... Mips lebih disukai daripada tekstur volume karena mereka menggunakan lebih sedikit resolusi, dan level Blur yang lebih tinggi membutuhkan lebih sedikit resolusi?
Alan Wolfe
1
Saya akan mengatakan bahwa kedua "jenis" probe cahaya ini adalah sama. Probe cahaya adalah ukuran pancaran (biasanya dalam beberapa cara berbelit-belit) yang diterima pada suatu titik dalam adegan. Cubemaps dan SH hanyalah cara yang berbeda untuk menyimpan / menghitung probe cahaya, membuat pertukaran / penyimpanan / kualitas yang berbeda. (EDIT: Hanya untuk memperjelas, saya setuju dengan jawabannya, saya hanya berpikir itu tidak produktif untuk menganggap mereka sebagai hal yang terpisah.)
yuriks
@AlanWolfe Ada kegunaan dan itu adalah untuk memiliki peta untuk ligtning difus diambil dari lingkungan nyata (disebut bola abu-abu / bola putih), bukan hanya specular. Berikut adalah disucssion dari kedua Mirror / Grey Ball Shaders
joojaa
1
@AlanWolfe Benar & mdash; Anda membutuhkan lebih sedikit resolusi pada level yang lebih kabur. Selain itu, tekstur volume cubemap bukan hal yang ada di perangkat keras. :)
Nathan Reed