Трассировка лучей в реальном времени

22 сентябрь, 2008 - 10:41Павел Молодчик

Трассировка лучей – метод 3D-визуализации, сочетающий изящество концепции с чрезвычайной вычислительной затратностью. Невозможность реализации данного алгоритма в реальном времени служила незыблемой аксиомой в течение 30 лет его существования. А сегодня эта аксиома рушится у нас на глазах.

В каждой шутке лишь доля шутки

Трассировка лучей в реальном времени По версии шутников с Tech ARP, эксклюзивная трассировка лучей под Windows Vista – секретное оружие Microsoft: обеспечиваемое этим алгоритмом улучшение качества изображения способно-де примирить с недостатками указанной ОС даже самых критически настроенных пользователей

Первого апреля сего года на малоизвестном малайзийском сайте Tech ARP, специализирующемся на обзорах компьютерного «железа», была опубликована сенсационная заметка. Согласно информации, которую авторы почерпнули из «конфиденциальных источников», интерфейс DirectX 11, будто бы ожидаемый с SP2 для Windows Vista, будет рассчитан на аппаратную акселерацию трассировки лучей. Известно: во всякой шутке есть доля правды. В данном случае самым информативным аспектом сообщения стала скорость его распространения по ИT-блогам и новостным сайтам (включая русскоязычные). Это была поистине стремительность лесного пожара, тушение которого потребовало официального опровержения от Microsoft! А ведь авторы «утки» не потрудились придать своему розыгрышу даже поверхностную достоверность. В частности, последняя страница заметки содержит такую реакцию, будто бы высказанную представителями VIA перед лицом переворота в 3D-графике: «Для нас в этой новости нет ничего примечательного. Мы в компьютерные игры не играем и вам не советуем».

Масштабность последствий этого первоапрельского розыгрыша (к которой стоит присмотреться составителям Книги рекордов Гиннеса) говорит о том, как сильно разогрето общественное мнение и насколько подготовлена почва для маркетинговых ходов, связанных с внедрением трассировки лучей в реальном времени.

Хроника разогрева и подготовки

  • Январь 1996. Презентация пионерского 64-килобайтового трассировщика Transgression 2 от демо-группы MFX.
  • Октябрь 1998. Исследователи Университета штата Юта представляют трассировщик реального времени RTRT (Real Time Ray Tracer, sci.utah.edu/research/rtrt.html), поддерживающий до 1024 процессоров и приспособленный для визуализации научных данных.
  • Апрель 2000. Группа Exceed затмевает MFX, поразив демо-сцену существенно более продвинутым 64-килобайтовым трассировщиком Heaven Seven, заставившим некоторых предвещать скорое пришествие игровых движков с элементами представленной технологии. Оба названных демо-шедевра, рассчитанных на ранние поколения Pentium, легко найти на сайтах scene.org и youtube.com.
  • Июнь 2004. Для трассировки лучей адаптируется Quake 3. Автор адаптации – Дэниел Пол (Daniel Pohl), причастный к проекту OpenRT (openrt.de). Соответственно своему названию данный проект призван стать в области трассировки тем же, чем является OpenGL в сфере растрирования. Демонстрационной платформой для Quake 3 RT послужил кластер из 20 процессоров AMD XP1800.
  • Сентябрь 2007. Руководство Intel объявило о том, что разрабатываемый ими многоядерный процессор Larrabee будет играть роль GPU, способного реализовать трассировку лучей, а также о приобретении компании Havoc (havoc.com), являющейся создателем популярнейшей одноименной технологии физического моделирования для игровых движков.
  • Февраль 2008. Intel приобретает разработчика игровых движков Project Offset (projectoffset.com).
  • Май 2008. NVIDIA покупает компанию RayScale, основанную упоминавшимися сотрудниками университета штата Юта. Их послужной список содержит колоссальное количество статей, многие из которых посвящены очень простым (в формулировке, но не в решении) и очень важным для эффективной трассировки задачам вроде оптимизации быстродействия (до 30%!) алгоритма выявления факта пересечения луча и параллелепипеда.
  • Июнь 2008. Intel демонстрирует адаптированную для трассировки лучей игру Quake Wars. Автор – Дэниел Пол, с августа 2007 г. зачисленный в штат компании. Для визуализации изображения в HD-качестве (1280×720) с регенерацией 14–29 fps используется 16-ядерная система Tigerton, работающая на частоте 2,93 ГГц.
  • Июль 2008. AMD устраивает демонстрацию фотореалистической трассировки лучей в реальном времени на процессоре Phenom.
  • Август 2008. Появляются новые официальные данные о Larrabee. В частности, объявлено, что уже в 2009 г., если все пойдет в соответствии с планами Intel, NVIDIA и ATI придется иметь дело с 8-ядерным гибридом CPU и GPU, реализующим DirectX-конвейер таким образом, что все его этапы являются программируемыми. Естественно, DirectX для Larrabee не единственная альтернатива. Если трассировка лучей, визуализация вокселей или какие-либо еще графические концепции плохо вписываются в этот стандарт (а вписываются они в него плохо), то можно обойтись и без него. Предлагаемая Intel гибридизация CPU и GPU (а также PPU и AIPU, под каковыми аббревиатурами понимаются аппаратные ускорители моделирования физических явлений и искусственного интеллекта) создает благоприятные условия для гибридизации различных компонентов движка. В ее рамках, к примеру, задача обнаружения столкновений может быть эффективно объединена с моделированием распространения света и звуков. Таким образом, спираль истории возвращает 3D-индустрию к старым добрым временам DOOM II, когда над программистами игровых движков не довлел обезличивающий диктат DirectX-стандартизации (если, конечно, не учитывать, что игровые проекты со значительным бюджетом не смогут в ближайшем будущем игнорировать парк игровых приставок по финансовым соображениям).

Отметим еще одно неожиданное сальто: похоже, понятие «интегрированная графика от Intel» избавляется от унизительных ассоциаций с бухгалтерскими ПК и превращается в мечту игромана.

Готова ли игровая индустрия отказаться от растрирования?

Трассировка лучей в реальном времени
Монстр в зеркальных доспехах из Quake Wars в версии Intel

Двигателем прогресса в области визуализации в реальном времени является игровая индустрия. Насколько она заинтересована в методах трассировки лучей? Трудно представить, чье мнение по данному поводу могло бы весить больше, чем мнение Джона Кармака из id Software, а он считает, что эту заинтересованность не следует переоценивать. Трезвомыслящий Кармак указывает, что тонкие явления вроде многократных переотражений имеют для игрока значение лишь в первые минуты погружения в игру, а продемонстрированная Intel способность игр прошлого поколения работать в режиме трассировки лучей не может служить для игровой индустрии весомым доводом в пользу целесообразности его поддержки в играх будущего.

Станет ли таким весомым доводом движок Tech 6 от id Software, находящийся пока на начальных этапах проектирования? Последнее поколение технологии MegaTexture в Tech 5 практически снимает ограничения на сложность текстурирования. А Tech 6 может это сделать в отношении геометрической сложности сцены! Что будет достигнуто, по мнению Кармака, за счет использования разреженных октарных деревьев (sparse octrees) – структур данных, ускоряющих трассировку и улучшающих качество текстурирования сцен, состоящих из большого количества маленьких примитивов. Именно в таких сценах будет происходить действие игр следующего поколения. Дело в том, что прямые линии суть абстракции, не встречающиеся в природе, и потому сцена, претендующая на реалистичность, должна состоять из криволинейных поверхностей. Для того чтобы последние не выглядели угловатыми, количество треугольников в аппроксимирующем их многограннике должно быть сопоставимо с числом пикселов, занимаемых на экране растрированным образом во всевозможных ракурсах. Из этого следует, что общее число треугольников, составляющих модель бескомпромиссно реалистичной 3D-сцены, должно превосходить количество пикселов современных дисплеев и исчисляться миллионами. Такое изобилие треугольников может свести на нет выигрыш в производительности, присущий алгоритмам растрирования, поскольку они требуют обработки (прорисовки или отбраковки) всех примитивов в сцене – даже тех, что занимают на экране меньше пиксела, тогда как в трассировке участвуют лишь те примитивы, с которыми пересекается какой-нибудь луч.

Трассировка лучей в реальном времени Описание 3D-геометрии и текстур в виде разреженного октарного дерева – один из ключевых методов акселерации трассировки лучей, в рамках которого они рекурсивно разбиваются секущими плоскостями на сегменты, что позволяет существенно ускорить вычисление точек их пересечения с визуализируемыми поверхностями. К сожалению, применимость метода ограничена статическими сценами. Сегодня оптимизация представления объектов изменчивой формы – область бурной исследовательской активности (иллюстрация с сайта evasion.imag.fr)

Две отвлеченные аналогии

С точки зрения отношения изображения к реальности растрирование и трассировка подобны живописи и фотографии. Не зря один из методов растрирования называется «алгоритмом художника» (в его рамках устранение невидимых поверхностей достигается за счет того, что близко расположенные объекты «рисуются» поверх объектов заднего плана). Оптический тракт фотокамеры можно рассматривать как узкоспециализированный аналоговый компьютер, реализующий «графические вычисления», подобно алгоритму трассирования лучей, т. е. по законам реального мира. Этим фотокамера отличается от художника, чья техника имитации действительности имеет с законами распространения света весьма косвенную связь. Впрочем, надо отметить, что великие имитаторы действительности вроде Гольбейна доказали достижимость для достаточно искусного художника практически безукоризненного фотореализма. Сходным образом и алгоритмы растрирования теоретически могут развиться до такого уровня, что отличить их трассировщика по результатам работы будет затруднительно.

По количеству же вычислительных затрат на условную единицу отображенной информации растрирование и трассировка подобны алфавитно-цифровым и графическим видеоадаптерам. В 1980-х – начале 1990-х годов разработчики алфавитно-цифровых видеоадаптеров, стремившиеся приблизить вид экранного текста к привычным бумажным документам, прибегали к таким ухищрениям, как внедрение «псевдографики», улучшение цветового и пространственного разрешения символов и даже предоставляли программистам возможность устанавливать шрифты. Минуло немало времени, прежде чем удешевление вычислительных ресурсов сделало алфавитно-цифровые режимы работы видеоадаптеров полностью неактуальными. Сходным образом и традиционные алгоритмы растрирования не сдадут своих позиций без продолжительного сопротивления. Тем более что потенциал их совершенствования далеко не исчерпан.

Трассировка лучей в реальном времени Алгоритмы растрирования отнюдь не исчерпали потенциала реалистичности. Один из последних примеров – отлично совместимая с традиционными видеоакселераторами разработка Технического университета Будапешта , позволяющая получать отражения, преломления и даже каустику с помощью специально модифицированных текстур. Их текселы дополняются информацией о расстоянии до центров объектов с отражающими и преломляющими поверхностями

Конкуренция или сотрудничество?

Вспомним, что в производстве блокбастеров трассировка и растрирование мирно уживаются (несмотря на то, что бюджеты фильмов позволяют обеспечить более чем достаточную вычислительную мощность). Трассировка и растрирование хороши для разных целей, и известно много способов их объединения в пределах одного изображения. Поэтому драматическое противопоставление трассировки лучей растрированию в заметках об Intel Larrabee имеет отчасти искусственный характер. Нагнетание страстей вокруг этого мнимого противостояния заставляет вспомнить о недавней войне форматов носителей высокой плотности. В таких ситуациях ажиотаж будет выгоден обеим воюющим сторонам, ибо он повышает уровень общественной информированности о hi-tech, облегчая тем самым привлечение потребителей. Да и отвлекает от крамольной мысли, на которую может навести кого-то феноменальный успех игровой приставки Nintendo Wii, не блещущей графическими возможностями: «А нужна ли мне более мощная графика?»