Dari pemahaman saya, harmonik bola terkadang digunakan untuk memperkirakan aspek pencahayaan tertentu (tergantung pada aplikasinya).
Misalnya, sepertinya Anda dapat memperkirakan penyebab pencahayaan difus dengan sumber cahaya arah pada titik permukaan, atau bagian-bagiannya, dengan menghitung koefisien SH untuk semua pita yang Anda gunakan (untuk akurasi apa pun yang Anda inginkan) ke arah tersebut. permukaan normal dan penskalaan dengan apa pun yang Anda butuhkan untuk skala dengan (misalnya intensitas warna terang, titik (n, l), dll.).
Yang belum saya pahami adalah apa yang seharusnya dicapai. Apa keuntungan sebenarnya dari melakukannya dengan cara ini dibandingkan dengan mengevaluasi BRDF difus dengan cara normal. Apakah Anda menyimpan perhitungan di suatu tempat? Apakah ada beberapa informasi tambahan yang terkandung dalam representasi SH yang Anda tidak bisa dapatkan dari hasil skalar dari evaluasi normal?
sumber
Jawaban:
Alasan untuk menggunakan harmonik bola adalah untuk memperkirakan distribusi cahaya yang masuk di sekitar suatu titik — biasanya cahaya tidak langsung yang dihitung oleh beberapa algoritma iluminasi global. Kemudian BRDF juga diperkirakan dengan harmonik bola, untuk memungkinkan secara efisien menghitung cahaya keluar yang dilihat oleh penonton, dengan mengambil produk titik dari koefisien SH cahaya yang masuk dengan koefisien SH BRDF. Ini mendekati konvolusi cahaya yang masuk dengan BRDF, seperti yang terlihat dalam persamaan rendering.
Jika Anda hanya ingin menerima cahaya dari sumber titik, Anda tidak perlu SH. Lampu point lebih akurat ditangani dengan hanya mengevaluasi BRDF secara langsung. Juga, jika Anda memiliki lingkungan tetap (langit dll.) Yang Anda inginkan untuk menerima cahaya, Anda dapat membuat cubemaps offline yang sudah terkonvolusi (menggunakan CubeMapGen misalnya) yang melakukan pekerjaan yang cukup baik dalam memperkirakan konvolusi peta lingkungan dengan BRDF. Tidak perlu untuk SH di sini juga.
Di mana SH benar-benar berguna adalah ketika Anda memiliki pemandangan yang kompleks dan Anda menginginkan pencahayaan tidak langsung, yaitu pencahayaan bouncing. Dalam hal ini distribusi cahaya bervariasi dari satu tempat ke tempat lain. Pada prinsipnya, setiap titik individu dalam pemandangan memiliki lingkungan pencahayaan yang berbeda berdasarkan lingkungannya. Dalam praktiknya, kami mengambil sampel pencahayaan pada titik-titik diskrit menggunakan beberapa algoritma penerangan global. Ada banyak cara untuk melakukannya - Anda dapat mencicipi pencahayaan di setiap titik permukaan, misalnya, atau di setiap texel dari peta cahaya. Atau buat representasi volumetrik menggunakan kisi, atau jaring tetrahedral .
Intinya adalah, ada sejumlah besar titik di mana pencahayaan sampel, dan karenanya kita membutuhkan representasi pencahayaan yang fleksibel namun sangat kompak di sekitar titik, untuk menghindari konsumsi terlalu banyak memori. SH mengisi peran ini dengan baik. Ini juga memiliki properti praktis yang berfungsi baik dengan interpolasi, yaitu koefisien SH dapat diinterpolasi dari satu titik sampel ke titik lainnya dan pencahayaan di antaranya akan berperilaku wajar. Dan karena menangkap distribusi sudut keseluruhan cahaya yang masuk, bukan hanya cahaya dari satu arah, Anda dapat menggunakannya dengan permukaan yang dipetakan normal dan mendapatkan hasil yang cukup bagus.
Perlu dicatat, bahwa SH benar-benar hanya berguna untuk pencahayaan difus. Kecuali jika Anda menggunakan jumlah koefisien SH yang benar-benar gila, itu akan mengaburkan distribusi sudut cahaya yang masuk terlalu banyak. Untuk penerangan tidak langsung specular berkualitas tinggi, diperlukan hal lain, seperti cubemaps yang dikoreksi paralaks dan / atau raytracing ruang layar.
sumber
Jawaban singkat, perhitungan cahaya fisik yang lebih akurat. (Sehubungan dengan beberapa karakteristik interaksi permukaan cahaya).
Sayangnya masalahnya terletak pada definisi cara normal . Model refleksi phong "normal" telah dianut sejak lama oleh komunitas rendering waktu nyata dari awal dan telah menjadi standar de facto karena kesederhanaannya yang membuatnya sesuai untuk penggunaan rendering waktu nyata.
Masalahnya , interaksi cahaya / material kehidupan nyata begitu rumit sehingga tidak dapat benar-benar dimodelkan oleh BRDF tunggal.
BRDF adalah abstraksi bagaimana interaksi cahaya yang sebenarnya seharusnya terjadi. phong hanyalah salah satu dari banyak lainnya, yang memiliki keunggulan kesederhanaan.
Dalam grafik komputer ada beberapa BRDF berbeda yang termasuk dalam dua kategori utama:
Berbicara tentang kategori kedua, masing-masing BRDF berusaha untuk mencapai karakteristik tertentu dengan interaksi permukaan cahaya. BRDF yang paling sederhana yang mungkin adalah Lambertian yang mencoba memodelkan hamburan bawah permukaan dan sering digunakan dalam grafik komputer, Nilai reflektansi konstan dari BRDF Lambertian biasanya disebut sebagai warna difus.
Dalam grafik komputer waktu nyata biasanya BRDF dipilih secara manual dan parameternya diatur untuk mencapai tampilan yang diinginkan (misalnya menggunakan Phong dengan nilai-nilai tertentu untuk memodelkan permukaan plastik atau krom).
Di sisi lain, kadang-kadang BRDF diukur langsung dari permukaan yang diinginkan (dan tidak diwakili oleh persamaan matematika). Ini memberi kami data yang jauh lebih akurat secara fisik tentang permukaan yang sulit untuk dilakukan secara analitis.
Salah satu metode agar sesuai dengan data yang ditangkap adalah memilih BRDF analitik dan memasukkan data ini ke dalamnya. Spherical Harmonics hanyalah teknik yang digunakan untuk mewakili jumlah yang diukur, dan menyesuaikannya menjadi model BRDF analitik.
Sumber daya terbaik untuk teori BRDF dapat ditemukan dalam rendering waktu nyata
sumber