Интервью с Дениэлом Полом из Intel о трассировке лучей, часть 2

Предыдущая часть интервью.

TG Daily: Одним из преимуществ метода трассировки лучей называется его невероятная масштабируемость. Итак, позвольте мне спросить, насколько масштабируем этот метод?

Daniel Pohl: Интересной особенностью трассировки лучей является то, что каждый луч может быть просчитан индивидуально. Это означает, что вы можете рассчитывать каждый пиксель независимо друг от друга — это очень хорошо для параллелизма. Мы провели эксперимент с четырьмя компьютерами с 4-ядерными процессорами Core 2 Quad, соединенными через гигабитное соединение. После этого мы сравнили мощь одиночной машины с одним ядром с такой вот виртуальной 16-ядерной системой: фактор ускорения был 15,2, то есть виртуальный компьютер был более, чем в 15 раз быстрее одноядерной машины.

Масштабирование производительности при трассировке лучей

TG Daily: Этот результат был достигнут на гигабитном сетевом соединении?

Daniel Pohl: Да, мы знаем, что гигабитное соединение добавляет большие задержки, однако метод трассировки лучей даже при этом смог достигнуть ускорения в 15,2 раза.

TG Daily: 10 лет назад трассировка лучей в реальном времени была лишь научной фантастикой, даже когда использовались сотни процессоров с максимальными частотами. Что изменилось в этой области?

Daniel Pohl: Из-за таких огромных вычислительных требований, трассировка лучей могла использоваться лишь при производстве фильмов. Terminator 2 — хороший пример: вы могли видеть эти эффекты отражений и возникновение терминатора прямо из пола. Примерно в 2001 году впервые появилась возможность производить визуальные расчеты в реальном времени по методу трассировки лучей. Для этого использовались сотни процессоров, объединенных локальной сетью. Сейчас мы можем производить достаточно качественную трассировку лучей на одном компьютере с 8 ядрами.

TG Daily: Какие технологии позволили трассировке лучей появиться на настольных ПК?

Daniel Pohl: Во первых, со временем оборудование становилось все более быстрым, однако, как вы можете представить, это не является ключевым катализатором. Мы получили огромные преимущества с появлением инструкций SSE. Еще один фактор — улучшение алгоритмов трассировки, которые так же научились использовать SSE. Мы улучшили алгоритмы для использования новых особенностей оборудования: мы исполняем сейчас пакеты лучей или можем иметь неограниченное количество лучей одновременно. Мы используем структуры, вроде kd-деревьев и BSP-деревьев, позволяющие ускорять процесс трассировки лучей и рассчитывать одиночный луч достаточно просто.

TG Daily: Во время вашей речи на конференции разработчиков игр 2008, вы говорили об артефактах и других проблемах качества изображений в 3D-движках, которые базированы на растеризации. Что не так в современных играх?

Daniel Pohl: В принципе, с использованием растеризации можно сделать любые спецэффекты. Проблема в том, что это отнимает очень много времени у разработчиков. Придется использовать множество трюков, понадобится многопроходный подход и вы закончите с некими допущениями, которые не будут работать, например, в тенях. Они будут ограничены разрешением текстур, а когда вам понадобится увеличить разрешение текстур, придется увеличивать и разрешение текстур для теней. В результате компромиссов тени не будут выглядеть так, как должны.

Так же при использовании метода растеризации, отражения обычно визуализируются предварительно и их качество ограничено разрешением текстуры. Отражения обычно визуализируются в более низких разрешениях, как это можно видеть в различных версиях Need For Speed, потому что, на самом деле, эти отражения не отражают того, что находится вокруг.

При использовании трассировки лучей, мы имеем попиксельные тени и получаем физически правильные тени и отражения. В случае с машиной, мы получим реальные отражения света и изображения того, что находится против отражающей поверхности. Трассировка лучей уже используется немецкими производителями автомобилей, которые используют эту технологию для того, чтобы увидеть, как их предварительные модели будут смотреться в реальном мире. Натуральные отражения — это один из главных элементов, отсутствующих в современных играх.

TG Daily: Продолжая наш разговор о тенях и их неточности в современных играх, что наглядно демонстрируют Call of Duty 4 и Unreal Tournament 3, можете ли вы сказать, что трассировка лучей является идеальным методом расчета теней? Или, может быть, он является даже более быстрым и точным методом?

Daniel Pohl: Мы добились попиксельных теней с помощью технологии трассировки лучей, поэтому эти тени избавлены от артефактов. Мы можем достигнуть и мягких теней, однако, это, конечно, потребует дополнительных вычислений, базирующихся на близлежащих пикселях. Однако, это достижимо. Если мы взглянем в будущее, я могу сказать, что мы вскоре сможем реализовать глобальное освещение, ведь большинство алгоритмов глобального освещения используют метод трассировки лучей для определения того, как лучи отражаются от поверхностей. При использовании метода глобального освещения можно добиться невероятно высокого качества изображения, которое будет очень близко к фотореалистичному.

TG Daily: Вы говорили, что тени не ограничены своим цветом, на них может влиять окружающие объекты, и вы сможете использовать метод трассировки лучей для создания настоящих отражений и теней в отражениях...

Daniel Pohl: Да. Я думаю, вы никогда не видели цветную тень в играх до сих пор. Однако, при использовании метода трассировки лучей, такую тень создать можно легко. Например, если вы имеете некую оранжевую стеклянную сферу и хотите увидеть тень этой сферы, с помощью простой функции можно отрисовать тень и добавить любой нужный вам цвет.

Источник: TG Daily

©  nvWorld.ru