Відповіді:
Поява об'ємів (які також називаються середовищами, що беруть участь у природі) викликається крихітними частинками, такими як пил, краплі води або планктон, які суспендуються в навколишній рідині, такі як повітря або вода. Ці частинки є твердими предметами, і світло переломлює або відбивається від цих предметів, як на нормальній поверхні. Теоретично, ЗМІ, що беруть участь, могли оброблятись традиційним променевим відстежувачем із лише поверхневими перетинами.
Звичайно, велика кількість цих частинок робить неможливим насправді їх випромінювати окремо. Натомість вони наближені статистичною моделлю: Оскільки частинок дуже мало, а відстань між частинками значно більше, ніж розмір частинок, окремі взаємодії світла з частинками можна моделювати як статистично незалежні. Тому доцільним є наближення замінювати окремі частинки безперервними величинами, які описують "середню" взаємодію світло-частинки у цій певній області в просторі.
Для фізично заснованого об'ємного світлового транспорту ми замінюємо немислимо багато частинок безперервним діючим середовищем, яке має дві властивості: коефіцієнт поглинання та коефіцієнт розсіювання. Ці коефіцієнти дуже зручні для відстеження променів, оскільки вони дозволяють обчислити ймовірність того, що промінь взаємодіє із середовищем - тобто ймовірність вразити одну з частинок - як функцію відстані.
Позначається коефіцієнт поглинання . Скажіть, промінь світла хоче подорожуватиметри всередині середовища, що бере участь; ймовірність потрапляння в нього через несприйняття, тобто не потрапляння однієї з частинок і поглинання нею - є`. Зі збільшенням t ми можемо побачити, що ця ймовірність йде до нуля, тобто чим довше ми подорожуємо через середовище, тим більше шансів на те, що щось вдарить і поглинеться. Дуже схожі речі стосуються коефіцієнта розсіювання: Ймовірність того, що промінь не потрапив на частинку і розсіявся, є ; тобто чим довше ми подорожуємо через носій, тим більше ймовірність, що ми потрапимо в частинку і розкинемося в інший бік.
Зазвичай ці дві величини складаються в один коефіцієнт вимирання, . Ймовірність подорожі метрів через середовище, не взаємодіючи з ним (ні поглинаючись, ні розсіявшись) . З іншого боку, ймовірність взаємодії із середовищем після метрів є .
Спосіб, яким це використовується у фізично обгрунтованих рендерінгах, полягає в наступному: Коли промінь потрапляє в середовище, ми ймовірно зупиняємо його всередині середовища і надаємо йому взаємодію з частинкою. Важливість вибірки ймовірності взаємодії дає відстань ; це говорить нам, що промінь мандрував метрів в середовищі, перш ніж вдарити по частинці, і тепер відбувається одне з двох речей: або промінь поглине частинку (з вірогідністю ), або він розсипається (з вірогідністю ).
Як розсіюється промінь, описується фазова функція і залежить від природи частинок; фазова функція Релея описує розсіювання від сферичних частинок, менших за довжину хвилі світла (наприклад, наша атмосфера); фазова функція Мі описує розсіювання сферичних частинок аналогічних розмірів, ніж довжина хвилі (наприклад, краплі води); у графіці зазвичай використовується фазова функція Генєя-Грінштейна , спочатку застосовувана для розсіювання міжзоряного пилу.
Зараз у графіці ми зазвичай не рендеруємо зображення нескінченного середовища, але візуалізуємо медіа всередині сцени, що складається з твердих поверхонь. У цьому випадку ми спочатку повністю простежуємо промінь до тих пір, поки він не потрапить на наступну поверхню, повністю ігноруючи присутність середовища; це дає нам відстань до наступної поверхні,. Потім відбираємо відстань взаємодіїв середовищі, як описано раніше. Якщо, промінь потрапив на частинку на шляху до наступної поверхні, і ми або поглинаємо її, або розсипаємо. Якщо, промінь пробився непошкодженим і взаємодіє з поверхнею як завжди.
Ця публікація була лише невеликим вступом до візуалізації за участю ЗМІ; крім усього іншого, я повністю ігнорував просторово різні коефіцієнти (які вам потрібні для хмар, диму тощо). Примітки Стіва Маршнера є хорошим ресурсом, якщо вам цікаво. Взагалі, ЗМІ, які беруть участь у роботі, дуже важко відтворити, і ви можете бути набагато складнішими, ніж те, що я описав тут; є об'ємне фотонне картографування , фотонні промені , дифузійні наближення , вибіркове значення спільної важливості та багато іншого. Також є цікава робота над зернистими носіями що описує, що робити, коли статистична модель розпадається, тобто взаємодії частинок вже не є статистично незалежними.
Один із способів зробити це - що не зовсім є рішенням "перейти до", але може добре працювати, - знайти відстань, яку промінь пройшов через об'єм, і використовувати інтеграцію деякої функції щільності, щоб обчислити, скільки "штук" було хіт.
Ось посилання з прикладом реалізації: http://blog.demofox.org/2014/06/22/analytic-fog-density/
Залежить від ефективного обсягу.
Уніфіковані об'ємні ефекти, що не належать до розсіювання, можна змоделювати, просто обчисливши відстань входу променя та виходу променів.
В іншому випадку вам потрібно зробити інтеграцію променевого шляху, також відомого як проміння променями. Щоб уникнути необхідності зйомки вторинних променів, реймаршинг часто поєднується з якимось кешем, як-то глибока карта, глибокі карти, цегляні карти або хмари вокселів для світлого затінення тощо. Таким чином, вам не потрібно, щоб пройти всю сцену. Подібне кешування часто робиться з об'ємною процедурною текстурою.
Можна також перетворити текстуру на поверхневі примітиви, такі як ящики, сфери або площини, які мають підходящу м'яку обробку. Потім можна використовувати звичайні прийоми візуалізації для вирішення об'ємного ефекту. Проблема в цьому полягає в тому, що зазвичай потрібно багато примітивів. Крім того, форма примітиву може проявлятись як занадто рівномірний відбір проб.