Як працює трасування променів
Головна ідея трасування променів оманливо проста: для кожного пікселя випускається промінь із камери у сцену, знаходиться найближчий перетин, і ця точка затінюється шляхом випускання тіньових променів у напрямку джерел світла. Повторюючи процес із променями відбиття та заломлення, отримуємо фізично коректні зображення. Єдині вхідні дані з фізики — це закон відбиття (θ_r = θ_i) та закон Снелліуса (n₁ sin θ₁ = n₂ sin θ₂).
Сучасні GPU-трасувальники променів і трасувальники шляху (NVIDIA RTX, Apple Metal ray tracing) роблять саме це з швидкістю мільярдів променів за секунду. Симуляції на цій сторінці працюють повністю у браузері — частина на JavaScript, частина у фрагментних шейдерах GLSL, — тож ви можете змінювати сцену і в реальному часі спостерігати фізичну поведінку світла.
Закон Снелліуса: n₁ sin θ₁ = n₂ sin θ₂
Критичний кут (ПВВ): θ_c = arcsin(n₂/n₁) (n₁ >
n₂)
Коефіцієнт відбиття Френеля (s-поляризація):
r_s = (n₁ cos θ₁ − n₂ cos θ₂) / (n₁ cos θ₁ + n₂ cos θ₂)
Коефіцієнт відбиття Френеля (p-поляризація):
r_p = (n₂ cos θ₁ − n₁ cos θ₂) / (n₂ cos θ₁ + n₁ cos θ₂)
Відбиття R = |r|², пропускання T = 1 − R
Наближення Шліка: R(θ) ≈ R₀ + (1−R₀)(1−cos θ)⁵
Атмосферна оптика та розсіювання
Небо блакитне, а заходи сонця червоні через розсіювання Релея: інтенсивність розсіювання молекулами газу пропорційна λ⁻⁴, тому короткохвильові блакитні фотони розсіюються приблизно у 5.5 раза сильніше за червоні. На заході сонячне світло проходить крізь приблизно у 38 разів більший шар атмосфери, втрачаючи блакитну складову і залишаючи червоний та помаранчевий кольори. Це не спецефекти — вони прямо випливають з електромагнітного перерізу розсіювання молекул, набагато менших за довжину хвилі.
SDF ray marching проти класичного трасування променів: У класичному трасуванні променів для кожного примітива пишуться аналітичні функції перетину. SDF marching замінює все це однією функцією відстані: промінь просувається на мінімальну відстань до будь-якої поверхні, гарантовано не проскакуючи повз неї. Виграш — це безкоштовне плавне змішування (smooth-min), нескінченний рівень деталізації та тривіальні деформації, — але SDF повинна бути ліпшицевою (величина градієнта ≤ 1), щоб sphere tracing збігався.