В курсах интро графики обычно есть проект, в котором вас попросят создать трассировщик лучей для рендеринга сцены. Многие студенты-графиков, поступающие в аспирантуру, говорят, что хотят работать над трассировкой лучей. И все же кажется, что трассировка лучей - мертвое поле в таких местах, как SIGGRAPH и т. Д.
Является ли трассировка лучей действительно лучшим способом точного рендеринга сцены при любом желаемом освещении и т. Д., И только медленная (неинтерактивная) работа трассировщиков лучей делает их неинтересными, или есть что-то еще?
Ответы:
Raytracing - очень хороший и интуитивно понятный алгоритм, и он является более физически реалистичным способом описания освещения сцены, чем растеризация, но:
Даже в неинтерактивных приложениях, таких как фильмы, Raytracing используется очень мало из-за его ограничений. Pixar только начал использовать Raytracing в Cars, и только для некоторых специфических эффектов отражения ( Ray Tracing для фильма 'Cars' ).
Вот отличная статья, которая более подробно описывает текущее состояние Raytracing и его преимущества и недостатки: State of Ray Tracing (в играх) .
источник
Базовая трассировка лучей имеет серьезную проблему, связанную с окружающим светом. Большинство моделей освещения рассматривают окружающий свет как постоянный фактор, пронизывающий эфир. Хотя трассировка лучей отлично подходит для расчета отражений, она страдает от численной нестабильности и сложных испытаний на пересечение поверхности. Трассировка лучей может плохо работать с аппаратным ускорением рендеринга, поскольку рекурсия играет важную роль в определении освещенности для любого конкретного пикселя. Базовая трассировка лучей в вычислительном отношении очень дорога.
Radiosity лучше обрабатывает окружающий свет, поскольку он рассматривает все объекты в окружающей среде как источники света, создавая модель освещения, которая в некотором роде более реалистична, чем трассировка лучей. При использовании решения для измерения радиации в сцене имеется фиксированное количество полигонов, и вычисления поддаются аппаратному ускорению.
В конечном счете, лучевая трансформация - это не лучший способ рендеринга сцены, но это компонент хорошей стратегии рендеринга. Высокая стоимость вычислений и плохое окружающее освещение являются серьезным ударом по трассировке лучей. В качестве темы исследования продолжается работа , но, похоже, она сосредоточена на аппаратном ускорении.
источник
Я бы не сказал, что трассировка лучей / трассировка трасс не работает ... во всяком случае, возрождается популярность в этой области благодаря внутреннему параллелизму многих связанных алгоритмов в этой области в сочетании со скоростью Системы на базе графических процессоров, позволяющие вычислять миллионы лучей в секунду. К этому добавляется гибкость в конвейере рендеринга, которую позволяют использовать более общие языки, такие как CUDA и OpenCL, которые позволяют разработчикам использовать параллельную функциональность графического процессора без необходимости явного использования графического конвейера OpenGL, подобно методам начального GPGPU. Вот некоторые известные примеры продолжающихся исследований по отслеживанию пути:
Наконец, у вас есть много исследований, посвященных методам оптимизации для глобальной проблемы освещения, включая точечное глобальное освещение, фотонное картирование и связанные с ними оптимизации, расширенное моделирование внешнего вида (включая методы на основе данных), кэширование освещенности и т. Д., И т. Д., И т. Д.
источник