TL; DR
Они принадлежат к тому же семейству решателей, где сферическое отслеживание является одним из методов лучевого марширования, то есть фамилией.
Raymarching определение
Raymarching - это метод, немного похожий на традиционную трассировку лучей, в которой поверхностную функцию нелегко решить (или невозможно без числовых итерационных методов). При трассировке лучей вы просто смотрите на пересечение лучей, в то время как при движении лучей вы идете вперед (или назад и вперед), пока не найдете пересечение, не получите достаточно образцов или чего-то еще, что вы пытаетесь решить. Попробуйте думать об этом как о методе Ньютона-Рафсона для нахождения поверхности или суммирования для интегрирования изменяющейся функции.
Это может быть полезно, если вы:
- Необходимо визуализировать объемы, которые не являются однородными
- Рендеринг неявных функций, фракталы
- Рендеринг других видов параметрических поверхностей, где пересечение не известно заранее, например, отображение паралакса
- Так далее
Изображение 1 : Традиционный лучевой марш для нахождения поверхности
Похожие сообщения:
Трассировка сферы
Трассировка сферы - один из возможных алгоритмов марширования лучей. Не все raymarching используют преимущества этого метода, поскольку они не могут быть преобразованы в схему такого рода.
Сферная трассировка используется для рендеринга неявных поверхностей . Неявные поверхности формируются на некотором уровне непрерывной функции. В сущности решение уравнения
F(X,Y,Z) = 0
Из-за того, как эта функция может быть решена в каждой точке, можно пойти дальше и оценить максимально возможную сферу, которая может соответствовать текущему шагу марша (или, если не совсем разумно, безопасно). Тогда вы знаете, что расстояние до следующего марта, по крайней мере, такое большое. Таким образом, вы можете иметь адаптивные шаги марширующего луча, ускоряющие процесс.
Рисунок 2. Трассировка сферы * в действии. Обратите внимание на адаптивный размер шага.
Для получения дополнительной информации см .:
* Возможно, в 2d это следует называть круговой трассировкой :)