Сферичні гармоніки
f( х )f( θ , ϕ )
Якщо ви не знаєте, що таке перетворення Фур'є, вам потрібно щось знати, перш ніж ви зможете зрозуміти сферичні гармоніки. Перетворення Фур'є дозволяє представляти сигнал у вигляді серії синусоїдних і косинусних хвиль, кожна з яких вдвічі перевищує частоту останньої. Тобто, ви можете представити сигнал як його середній плюс плюс синусоїда, довжина хвилі якої така ж, як довжина сигналу, плюс синусоїда вдвічі більша за довжину хвилі тощо. Оскільки перетворення Фур'є фіксує вас саме до цих довжин хвиль, вам потрібно лише записати амплітуду кожної з них.
Ми зазвичай використовуємо перетворення Фур'є для зображення зображень, які є лише двовимірними цифровими сигналами. Це корисно, тому що ви можете викинути частину синусоїди (або зменшити точність, з якою ви зберігаєте їх амплітуду), не змінюючи значно того, як зображення виглядає для людських очей. OTOH, викидання пікселів сильно змінює вигляд зображення.
У зразковому сигналі, як у зображенні, якщо ви використовуєте таку ж кількість синусоїди, що і зразки (пікселі) в оригінальному зображенні, ви можете реконструювати зображення точно, тому щойно ви починаєте скидати будь-які частоти, ви робите зображення займає менше місця.
Сферичні гармоніки подібно до перетворень Фур'є, але замість синусоїд вони використовують сферичну функцію, тому замість лінійних функцій (таких як зображення) вони можуть представляти функції, визначені у сфері (наприклад, карти середовища).
Світлові зонди
Так само, як стандартне зображення записує все світло, що досягає певної точки через площину зображення, світловий зонд записує все світло, що досягає певної точки з усіх напрямків. Вони вперше вийшли з кіноефектів. Якщо ви хочете додати об’єкт, створений комп'ютером, до сцени реального світу, вам потрібно мати можливість освітлити синтетичний об'єкт за допомогою освітлення реального світу. Для цього потрібно знати, яке світло сягає точки в сцені, де буде знаходитися синтетичний об’єкт. (Примітка. Хоча я кажу "освітлення", ви записуєте зображення всього світла, тому його можна використовувати і для відображення.)
Оскільки ви не можете мати камеру зі сферичним об'єктивом, яка записує все світло, що досягає однієї точки з усіх напрямків, ви записуєте це, роблячи звичайні фотографії сферичного дзеркала, а потім повторно відтворюючи зображення на сферу.
Поза кіноефектами частіше використовувати світлові зонди, створені на штучній сцені. Уявіть, що у вас є якийсь дорогий алгоритм для обчислення глобальної освітленості (GI) на сцені, а також у вас є деякі менші об'єкти, що рухаються в цій сцені (наприклад, рівень гри з гравцями в ній). Ви не можете запускати весь алгоритм GI кожного разу, коли будь-який об’єкт рухається, тому ви запускаєте його один раз зі статичною сценою та зберігаєте світлові зонди, зроблені в різних точках рівня. Тоді ви можете отримати гарне наближення до GI, освітлюючи плеєр залежно від того, який світловий зонд їм найближчий.
Використовуючи їх разом
Як правило, ви хочете все-таки відфільтрувати гострі краї у вашій глобальній освітленості, тому ви хочете представити їх компактно і легко дозволяє викинути високі частоти. Ось у чому насправді хороші сферичні гармоніки! Тому ви почуєте ці два терміни, які вживаються разом багато.
Ви обчислюєте світлові зонди за допомогою дорогого алгоритму GI - як правило, в інструменті рівня дизайну, або, можливо, раз на секунду (замість одного разу на кадр), якщо ви хочете включити свої динамічні об'єкти до. Ви зберігаєте їх дешево зі сферичними гармоніками - 16 поплавків вистачає для досить якісного освітлення, але не відбитків. Потім для кожного динамічного об'єкта, який ви хочете засвітити, ви вибираєте найближчий світловий зонд (або лінійно інтерполюєте кілька разом) і використовуєте його як рівномірний або постійний вхід у ваш шейдер. Також звичайно використовувати сферичні гармоніки для представлення даних про оклюзію навколишнього середовища, і це дуже дешево пов'язувати це з допомогою зонда світла, хоча є деякі складності навколо обертових сферичних гармонічних функцій.