English
version

Новости

Все теги
Подписаться на новости

Подпишитесь на рассылку, чтобы всегда быть в курсе последних новостей в мире технологий

Вы успешно подписались!

Мы отправили вам на указанный адрес письмо со ссылкой-подтверждением.

Закрыть
31 мая 2017

Технология трассировки лучей: переворот на рынке графических решений

30 мая 2017 года — Сайт VR360 опубликовал статью сотрудника британской компании Imagination Technologies Матьё Айнига (Mathieu Einig) «Технология трассировки лучей: переворот на рынке графических решений».

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

Например, при рендеринге пикселя в растеризаторе доступны следующие данные:

• Данные поверхности для одной точки (например, где находится точка, какого она цвета)

• Некоторые общие глобальные значения (например, положение трёх ближайших источников света, текущее время, направление от точки камеру)

• Некоторые текстуры.

Имея в наличии только такие данные, легко понять, что довольно сложно сделать оценку влияния игры света на антураж сцены. Есть способы аппроксимировать некоторые из этих данных, но они часто весьма неэффективны и несут разочарование конечным пользователям из-за низкого качества рендеринга (и уменьшенной частоты кадров, вызванной неэффективностью используемых методов аппроксимации). А кроме того они абсурдно сложны, чем причиняют головную боль разработчикам.

Рисунок 1: Рендеринг без какого-либо контекста (слева) создает очень искусственные образы. С контекстом (справа) изображения выглядят более естественно, с мягкими тенями, отражениями и игрой света.

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

Простым во всём, кроме необходимых вычислительных затрат. Поскольку выгоды этого метода настолько очевидны, почему же трассировка лучей используется не так часто? Это легко объяснить: испускание лучей на сцену и отслеживание их пересечений с геометрическими объектами — процесс очень сложный и требовательный к вычислительной мощности. Именно поэтому трассировку лучей исторически применяли лишь в киноиндустрии в качестве системы рендеринга оффлайн, то есть после процесса видеосъёмки.

Превращая трассировку лучей в реальность

Появление графического процессора со встроенной технологией трассировки лучей PowerVR Wizard компании Imagination Technologies кардинально переворачивает ситуацию. PowerVR GR6500 – это первый графический процессор семейства Wizard — может обрабатывать более 100 миллионов лучей в секунду, потребляя 2 Вт, что на порядок эффективнее любого другого существующего решения.

Другие компании в прошлом утверждали, что смогут на своих аппаратных средствах решить задачу трассировки лучей в реальном времени, но не справились. В чем отличие PowerVR Wizard? Прежде всего в том, что функция трассировки лучей встроена в реализации OpenGL ES и Vulkan с интерфейсом программирования приложений (API) для рендеринга в реальном времени. А это означает, что разработчикам не нужно переключаться на какую-то непонятную проприетарную систему рендеринга и зависеть от неё. Кроме того, трассировка лучей может быть смешана с растровой графикой, что позволяет легко интегрировать новые эффекты в существующие игры и приложения. Но самое главное, PowerVR Wizard полностью программируемый. Предыдущие аппаратные решения для трассировки лучей обычно включали ограниченный набор предопределенных эффектов, которые можно было включить или отключить, например, базовое отражение и преломление или жесткие тени. С данным решением трассировка лучей становится инструментом, который легко интегрируется в существующие движки, позволяя разработчикам использовать его любым способом, каким только они ни пожелают, даже для тех случаев, о которых никто бы и не подумал.

Рисунок 2. Наличие полностью программируемой системы трассировки лучей позволяет разработчикам применять любой стиль рендеринга, который они хотят.

Новая парадигма, ведущая к новым возможностям

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

Составление карты теней (lightmapping) — процесс предварительного вычисления сложных световых взаимодействий при создании трёхмерной среды (будь то для архитектурной визуализации или игры) — традиционно был очень долгим и утомительным. Каждое изменение геометрии сцены или освещения должно было сопровождаться периодом ожидания от нескольких минут до нескольких часов, что крайне затрудняло художникам достижение правильного результата. Но сама итеративная природа метода трассировки лучей может использоваться для решения этой проблемы: пользователь может получить результат мгновенно, но со множеством шумов, а затем со временем доработать его. Это означает, что если что-то выглядит неправильно, это можно сразу исправить, сэкономив массу времени.

Imagination Technologies работает со множеством ведущих поставщиков движков, промежуточного программного обеспечения (middleware) для игр, чтобы способствовать решению традиционной проблемы «курицы и яйца» — функция трассировки лучей встраивается в эти движки, что упрощает разработчикам включение этих функции в свои приложения.

Помимо задачи улучшения качества освещенности сцен, технология трассировки лучей может также использоваться для решения самых разных других задач. Например, в виртуальной реальности (ВР) трассировка лучей позволяет противодействовать дисторсии объектива на самом первом этапе процесса рендеринга, вместо того, чтобы перемещать и растягивать некоторые пиксели в конце процесса, как делают растеризаторы. Более того, мы можем менять количество лучей на пиксель в зависимости от положения пикселя в кадре, а это означает, что довольно просто можно реализовать рендеринг на сетчатке глаза (foveated rendering). При таком рендеринге отслеживается движение ваших глаз, и наиболее детализированные изображения создаются только там, куда вы смотрите, а повышенное качество изображения обеспечивается только там, где это действительно необходимо.

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

Оригинал этой статьи.