Трассировка лучей и трассировка контура - две самые интересные и требовательные техники динамического освещения, доступные геймерам и разработчикам игр в 2024 году. Они обе представляют собой огромный скачок в реализме по сравнению с более традиционными «запеченными» техниками освещения и даже могут заставить старые игры выглядеть гораздо реалистичнее, чем их блочные текстуры и геометрия имеют право.
Но если и трассировка лучей, и трассировка траектории создают более реалистичное освещение в играх, то что из них лучше? И в чем вообще разница между ними? Вот как сравниваются трассировка лучей и трассировка контура и почему в ближайшие годы вы можете увидеть в своих любимых играх больше одну, чем другую.
Что такое трассировка лучей?
Трассировка лучей - это реалистичный метод моделирования освещения в сцене. Изначально он был разработан в конце 1960-х годов, но только недавно стал применяться в играх в реальном времени из-за того, что требует больших затрат на расчеты.
Трассировка лучей работает путем направления луча в сцену через точку зрения игрока. Каждый раз, когда луч взаимодействует с объектом, рассчитывается его влияние на луч, включая цвет, прозрачность и ориентацию. Этот луч продолжает отслеживаться по мере того, как он перемещается по сцене, пока не пересечется с источником света. Расчеты производятся для каждого пикселя в сцене, что делает технику освещения невероятно реалистичной, но и невероятно требовательной.
Трассировка лучей использовалась в CGI-фильмах на протяжении многих лет, причем на рендеринг отдельных кадров часто уходили часы или даже дни. Однако с ростом вычислительной мощности и после выхода видеокарт RTX от Nvidia и графических процессоров RDNA от AMD ускорители трассировки лучей сделали возможной трассировку лучей в реальном времени в играх. Хотя в первых версиях она ограничивалась тенями и отражениями, впоследствии в некоторых играх она была расширена до глобального освещения.
Что такое трассировка лучей?
Трассировка контура - это более современный метод моделирования динамического освещения в сцене в реальном времени. Разработанный в середине 1980-х годов, он использует другой подход, посылая сотни или даже тысячи лучей одновременно от источника света, а затем отслеживая, как они беспорядочно расходятся по сцене. На первый взгляд это гораздо сложнее, но в итоге рендеринг получается проще, поскольку вместо того, чтобы отслеживать каждый луч от пикселя к источнику, он отслеживает только выборку этих лучей, основанную на наиболее вероятном пути света.
Это комбинация трассировки лучей и моделирования Монте-Карло, которая позволяет игре или приложению использовать управляемое количество путей для отслеживания источника света. Это позволяет создавать эффекты освещения, похожие на трассировку лучей, с меньшими накладными расходами, но, что не менее важно, позволяет добиться гораздо большей детализации в зависимости от возможностей системы и выбранных настроек. Больший размер выборки означает большую нагрузку на GPU при рендеринге сцены, но и большую детализацию. Меньшие выборки делают трассировку траектории более управляемой, но в ущерб визуальному качеству.
Однако конечные результаты трассировки контуров не идеальны. Они сочетаются с алгоритмами денуазинга для очистки результирующего изображения, и результаты впечатляют.
Есть определенные сцены и определенные объекты, такие как отражающие и преломляющие объекты - например, стакан воды, - для которых алгоритм трассировки траектории должен быть подправлен, чтобы избежать излишней потери информации в небольших образцах. Возможно, для таких объектов алгоритм будет просто прокладывать лучи грубой силой, чтобы гарантировать точность.
Однако конечным результатом в каждом случае является рендер сцены, которая выглядит так же реалистично освещенной, как и при трассировке лучей, если не более, но с гораздо меньшими накладными расходами - особенно при высоких настройках детализации. Трассировка контура также считается более эффективной для хорошо освещенных сцен, поскольку у нее больше данных, в то время как трассировка лучей может быть более эффективной при рендеринге сцен с большим количеством теней, поскольку она знает реальный путь, по которому пойдут лучи света.
Выглядит ли трассировка пути лучше, чем трассировка лучей?
Трассировка лучей - это точная техника моделирования освещения в реальном времени, поскольку она повторяет естественный путь распространения света по сцене. Однако количество вычислений, которые необходимо произвести для эффективного использования трассировки лучей, просто невероятно. Даже современное оборудование со всеми его аппаратными ускорениями может испытывать трудности в играх с интенсивной трассировкой лучей. Именно поэтому многие игры, поддерживающие "трассировку лучей", на самом деле используют трассировку лучей только для некоторой части сцены: Как правило, для теней или отражений.
Трассировка контура, с другой стороны, может создавать не менее сильные или даже более красивые визуальные эффекты при меньшей нагрузке на аппаратное обеспечение рендеринга. Именно эта модель используется в некоторых наиболее впечатляющих играх с трассировкой лучей, таких как Quake II RTX, Portal RTX и обновление режима Overdrive для Cyberpunk 2077. Ее также с большим успехом используют в старых играх, таких как Half-Life 2.
Трассировка контура предлагает более красивую и менее интенсивную форму динамического освещения и в целом является, пожалуй, лучшим решением. Однако трассировка лучей все еще имеет свое место там, где ограниченные размеры образцов трассировки пути могут привести к проблемам с визуальной точностью. Существует также множество современных примеров традиционно растеризованных игр, в которых трассировка лучей или трассировка контура освещения мало что добавляет к впечатлениям, но при этом полностью снижает частоту кадров - например, «Наследие Хогвартса».
Вероятно, пока видеокарты не станут настолько мощными, что трассировка лучей или трассировка контуров будут рендериться так же легко, как и растеризация, мы будем видеть в будущих играх комбинацию эффектов освещения, поскольку у каждой техники есть свое место.
Если вам понравилась эта статья, подписывайтесь, чтобы не пропустить еще много полезных статей!
Также вы можете прочитать меня здесь:
- Telegram: https://t.me/gergenshin
- яндекс Дзен: https://dzen.ru/gergen
- официальный сайт: https://www-genshin.ru