Со стороны графических процессоров мы уже давно можем заметить эту
тенденцию, апогеем которой стало представление NVIDIA CUDA, технологии,
позволяющей производить обычные вычисления с помощью мощностей
видеопроцессоров. С другой стороны, центральные процессоры идут по пути
увеличения количества ядер и интегрирования графических возможностей
в центральный процессор. Intel анонсировала недавно набор 256-битных
расширений AVX, которые будут встроены в процессоры в 2010 году
и послужат цели стирания разницы между видеокартами и процессорами.
ATi уже в 2006 году представила свой первый потоковый процессор
общего назначения, который был построен на базе Radeon X1900 XTX и уже
многие компании используют эти процессоры.
Однако, все это только первые шаги по использованию видеокарт
в параллельных расчетах общего назначения и использованию центральных
процессоров для графических расчетов. Новым этапом со стороны Intel
станет Larrabee. Как же Intel собирается изменить мир компьютерных игр?
Об этом и пойдет речь в интервью.
TG Daily: Что побудило вас использовать метод трассировки лучей в играх и заменить им обычный процесс растеризации?
Daniel Pohl: Все это началось в 2004 году, когда я учился
в Эрлангском университете в Германии. Тогда я слушал лекции профессора
Слусаллека (Slusallek), который исследовал возможность использования
трассировки лучей в реальном времени. Меня тогда очень заинтересовала
эта возможность, ведь ранее думал, что метод трассировки лучей не может
быть пригоден ни для чего, кроме как для производства фильмов.
Слусаллек показал несколько демонстраций в реальном времени и я был
очень удивлен, почему никто не использует эту технологию в играх.
Я связался с процессором Слусаллеком и переписал движок Quake III для
использования трассировки лучей (на основе OpenRT).
TG Daily: После работы над Quake III и нескольких публикаций
в СМИ, вы таким же способом переписали движок Quake IV и оказались
в рядах сотрудников Intel в Калифорнии. Над чем вы работаете сейчас?
Daniel Pohl: Я сейчас являюсь исследователем в группе, работающей
над трассировкой лучей. Мы исследуем технологии трассировки лучей
в реальном времени, например, вопросы того, как увеличить
производительность, масштабируемость и, самое важное — качество
изображения. К вопросам качества, к примеру, можно отнести
использование техник адаптивного антиалиасинга.
TG Daily: Если мы посмотрим на разницу между трассировкой лучей
и общепринятой растеризацией, то становится ясно, что трассировка лучей
может быть использована для гораздо большего, нежели просто отображения
движения.
Daniel Pohl: Да, вы правы. Если удастся ускорить исполнение
трассировки лучей до приемлемого уровня, мы сможем использовать его для
определения столкновений или для ИИ (искусственного интеллекта) при
установке определенных качеств. Например, можно легко определить,
виден ли объект за группой объектов вроде деревьев. Трассировка лучей
может быть использована не только для визуализации. Это к разговору
о том, что с помощью одной технологии можно делать гораздо больше, чем
одну лишь визуализацию.
TG Daily: Это дает совершенно новые перспективы развития игровой физики.
Daniel Pohl: Да, это очень хорошая вещь, потому что мы сможем
иметь все, что относится к игре в одной лишь структуре данных. Нам
не потребуется разделять структуры для столкновений, для графики, для
физики, для ИИ и т. д. В пределе, можно использовать высоко
оптимизированную структуру трассировки лучей для всего. Если
вы не будете удовлетворены результатами, можно использовать
дополнительные структуры, однако это вовсе не обязательно. 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: Трассировка лучей так же может быть использована для
точного расчета отражений и преломлений, которые сейчас реализуются
различными ухищрениями. Как трассировка лучей справляется
с полноразмерными и точными отражениями и преломлениями?
Daniel Pohl: Множество людей полагает, что трассировка лучей требует
много вычислительной мощи для расчета отражений и преломлений. Однако,
все, что нужно для реализации этого — задание отражающих свойств
материала, и программа трассировки будет рассчитывать отражающиеся
лучи. Поэтому мы можем достичь множества отражений и отражений
в отражениях. Мы можем создать столько отражающих поверхностей, сколько
захотим. Обычно люди полагают, что это неэффективно, потому что
количество расчетов многократно увеличивается, однако если говорить
об отражениях в отражениях, то количество лучей в этом случае
значительно сокращается благодаря уменьшению области расчетов.
С помощью трассировки лучей можно достигнуть огромного количества
отражений и преломлений, потому что расчеты производятся лишь в том
случае, если это отражение вы действительно увидите.
|
Need For Speed Pro Street (ноябрь 2007 года) |
TG Daily: Valve в прошлом году выпустила несколько игр
в комплекте The Orange Box, наиболее интересна из них Portal. Можно ли
использовать трассировку лучей для создания порталов? Какие ограничения
имеет такая технология?
Daniel Pohl: С помощью трассировки лучей создавать порталы очень
просто. Количество порталов может достигать бесконечности. Размер
порталов может быть даже 1 пиксель. Мы выпускаем так называемый главный
луч и когда он достигает нужной поверхности, камера его записывает.
В случае же порталов в момент достижения лучом портала, мы его
не записываем, а снова выпускаем в нужном направлении. И вуаля: у нас
есть портал.
Это может быть реализовано всего тремя строчками шейдерного кода.
Это очень просто и работает на попиксельном уровне. Мы можем так же
создавать порталы в порталах используя все те же три строчки кода. Вам
не понадобится программировать каждый портал — за вас все сделает
программа трассировки лучей. В общем, никаких ограничений нет.
|
Бесконечные отражения в отражениях |
TG Daily: Мне очень интересна тема требовательности к оборудованию. Вы говорили о соединении по сети четырех систем с 4-ядерными
процессорами. На конференции разработчиков игр вы демонстрировали
Quake4 с трассировкой лучей на ультракомпактном ПК от Sony. Как вам
удалось настолько сильно уменьшить системные требования?
Daniel Pohl: Я демонстрировал трассировку лучей на ультракомпактном ПК от Sony, который оснащен 1-ядерным
процессором Core 2 с частотой 1,2 ГГц. Дело в том, что трассировка
лучей имеет свойство практически линейного масштабирования. Чем меньше
пикселей на экране, тем меньше нужно затратить вычислительных
мощностей. Так что на устройствах с небольшим экраном легко можно
достигнуть нормальной производительности трассировки лучей. Данный
ультракомпактный ПК имел 4,5″ LCD экран с разрешением 1024×600 пикселей.
|
Quake IV с трассировкой лучей нормально исполняется на утракомпактном ПК |
TG Daily: Для демонстрации трассировки лучей в Quake IV на IDF вы использовали 8-ядерную систему. Какого рода производительности вы могли ожидать от ультракомпактного ПК, экран которого не сильно меньше чем на той 8-ядерной системе?
Daniel Pohl: Конечно, мы уменьшили разрешение для портативных
устройства. Например, если мы имеем устройство, способное выводить
30 кадров в секунду при разрешении 1280×720, линейное масштабирование
на таком устройстве позволит нам отображать 360 кадров на экране
с разрешением как у Sony PSP или 600 кадров в секунду на экране
с разрешением как у Nintendo DS. Конечно, никому не нужны 360 или
600 кадров в секунду. Реальной цифрой всегда будет 30—60 кадров в секунду.
|
Линейное масштабирование |
TG Daily: Каково ваше видение трассировки лучей в будущем?
Daniel Pohl: Трассировка лучей позволяет создавать
высококачественные изображения очень дружественным по отношению
к разработчикам способом. Метод становится все более быстрым
с эволюцией оборудования и алгоритмов. То есть нас ждет впереди
волнующее будущее. Мы верим, что трассировка лучей может стать еще
одним способом высококачественной визуализации в реальном времени
и будет жизнеспособной альтернативой растеризации.
TG Daily: Спасибо за потраченное время.
|