Що таке Рей Маркінг? Чи відслідковує сферу те саме?


31

Дуже багато демонстрацій ShaderToy поділяють алгоритм Ray Marching для відображення сцени, але вони часто написані дуже компактним стилем, і я не можу знайти простих прикладів чи пояснень.

То що таке Рей Маркінг? Деякі коментарі говорять про те, що мова йде про варіацію відстеження сфери. Які обчислювальні переваги такого підходу?

Відповіді:


34

TL; DR

Вони належать до того ж сімейства вирішувачів, де пошук сфери - це один із способів марширування променів, що є прізвищем.

Raymarching визначення

Raymarching - це техніка, схожа на традиційне просвітлення, де поверхневу функцію вирішити непросто (або неможливо без чисельних ітераційних методів). Під час проміння ви просто шукаєте перехрестя променя, тоді як при маршовому проході ви йдете вперед (або вперед і назад), поки не знайдете перехрестя, у вас є достатня кількість зразків або все, що ви намагаєтеся вирішити. Спробуйте подумати про це як про метод Ньютона-Рафсона для виявлення поверхні або підсумовування для інтеграції змінної функції.

Це може бути корисно, якщо ви:

  • Потрібно зробити об’ємні показники, які неоднакові
  • Надання неявних функцій, фракталів
  • Надання інших видів параметричних поверхонь, де перетин не відомий достроково, як картографування паралакса
  • І т.д.

Традиційний ремаршинг

Зображення 1 : Традиційний промінь проходить для виявлення поверхні

Схожі повідомлення:

Сфера калювання

Трасування сфери - це один із можливих алгоритмів кроку Рея. Не всі реймаршинг використовує переваги цього методу, оскільки їх неможливо перетворити на подібну схему.

Трасування сфери використовується для візуалізації неявних поверхонь . Неявні поверхні утворюються на деякому рівні безперервної функції. По суті розв’язування рівняння

F(X,Y,Z) = 0

Через те, як цю функцію можна вирішити в кожній точці, можна продовжити та оцінити найбільшу можливу сферу, яка може відповідати поточному кроку маршу (або, якщо не зовсім розумно безпечно). Тоді ви знаєте, що відстань наступного маршу принаймні така велика. Таким чином, у вас можуть бути пристосовні кроки проміння променів, що прискорюють процес.

Трасування сфери має адаптивний розмір кроку

Зображення 2 : Відстеження сфери * в дії відзначте, наскільки адаптивний розмір кроку

Для отримання додаткової інформації див:

* Можливо, у 2d це слід назвати трасуванням кола :)


1
Я б рекомендував цю статтю з Scratchapixel для глибшого пояснення: scratchapixel.com/lessons/advanced-rendering/…
користувач18490

Посилання @ user18490 на Scratchapixel перейшло до scratchapixel.com/lessons/advanced-rendering/… . Інша частина сайту ( scratchapixel.com/index.php ) також виглядає корисною.
WillC

15

Марш променів - це ітераційний тест перетину променів, під час якого ви крокуєте по промені та випробовуєте перехрестя, зазвичай використовуються для пошуку перехресть із суцільною геометрією, де випробування всередині / зовні швидко.

введіть тут опис зображення
Зображення з геометрії надання з текстурами рельєфу

Фіксований розмір кроку є досить поширеним, якщо ви дійсно не маєте уявлення, де може відбуватися перетин, але іноді замість цього використовуються методи кореневого пошуку, такі як двійковий або семантичний пошук. Часто для знаходження першого перетину використовується фіксований розмір кроку з подальшим двійковим пошуком. Я вперше натрапив на промінь променів у техніці відображення переміщення за пікселем. Рельєфне картографування деталей поверхні, що не мають висоти, добре прочитане!

введіть тут опис зображення

Зазвичай це використовується при скачуванні простору, техніці прискорення, де деяка попередня обробка дає безпечну відстань, яку можна рухати по промені, не перетинаючи геометрію, а ще краще, не перетинаючи і не залишаючи геометрію, щоб не пропустити її. Наприклад, картування конусного кроку та розслаблене крокування конуса.

Трасування сфери може посилатися на неявний тест на перехрещення променевої сфери, але це також назва космічної техніки стрибків Джона Харта, як згадує @joojaa, і використовується Вільямом Доннеллі ( картографічне переміщення за пікселем з функціями відстані ), де 3D текстура кодує радіуси сфер, в яких не існує геометрії.


Так, фотографувати зображення інших людей ефективніше, ніж малювати їх самостійно.
joojaa

@joojaa Так, швидше, якщо ти пам’ятаєш, де вони були, але без цього втішного почуття робити це самостійно: P. Також у мене є ця дурна помилка відображення субпікселя в хромі, так що текст є всім барвистим.
jozxyqk

1
Добре, що субпіксельна візуалізація - це те, чого не запитували. І все-таки.
joojaa

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.