Что значит Nvidia RTX для трассировки лучей, ГПУ-рендера и Vray?

После большого релиза новых видеокарт Владо объясняет, что этот прорыв означает для будущего рендеринга.


За последние почти 20 лет изысканий и разработок мы сумели создать самый технологичный фотореалистичный рейтрейс-рендер Vray. Трассировка лучей —лучший метод для достижения настоящего фотореализма, так как он основан на физических принципах поведения света. По этой причине Академия кинематографических искусству и наук признала наш вклад в рейтрейс-рендеринг, удостоив нас награды «Sci-Tech Award» за широкое распространение этой технологии в индустрии визуальных эффектов. Мы всегда стремились сделать рейтрейсинг быстрее, и десять лет назад мы начали овладевать мощью видеокарт. Теперь мы смотрим в будущее использования аппаратных решений, созданных специально для расчёта трассировки лучей. Это значит, что теперь мы можем реализовать рейтрейс-рендер в реальном времени.


Анонс Nvidia архитектуры Turing в новой линейке видеокарт RTX — это важная веха в истории компьютерной графики и конкретно рейстрейсинга. Профессиональные Quatro RTX были представлены на конференции SIGGRAPH 2018, а потребительские решения GeForce RTX — на Gamescom 2018. Эти новые видеокарты включают в себя новый блок RT Core, занимающийся исключительно рейтрейсингом, для решительного ускорения этих задач, а так же выводят на пользовательских рынок новый интерфейс NVLink, позволяющий удвоить доступную память при использовании двух видеокарт. С анонсом полной линейки имеет смысл потратить несколько минут на то чтобы понять что эти значит для будущего рендера

RT-ядра в RTX-каратах
Перед тем, как мы поймём что дают эти модули, давайте быстро разберёмся в основных моментах трассировки луча. Процесс рейтресинга в сцене вкратце может быть разделён на две разные части — трассировка и шейдинг.


Рейкастинг
Это процесс нахождения пересечения траектории лучей и объектов в сцене. Объекты состоят из различных геометрических примитивов — треугольников, кривых (для волос), частиц и проч. В обыкновенной сцене могут быть сотни копий объектов и сотни миллионов уникальных геометрических примитивов. Нахождения пересечения луча с этими примитивами — сложная операция, которая задействует такие непростые структуры данных как иерархия баундинг-боксов (bounding volume hierarchies, BVH), которая помогает уменьшить необходимое количество вычислений.
Шейдинг
Шейдинг — это процесс определения внешнего видео объекта, включая рассчёт текстур и свойств материалов, то есть того, как объект реагирует на свет. Шейдинг так же влияет на то, какие именно лучи нужно трассировать для определения внешности объекта — например, рассчёт теней от источников света, отражений, GI и тому подобное. Дерево шейдеров может быть весьма сложным, включая вычисления процедруных карт и их комбинаций в разных параметрах шейдеров, таких как отражения, диффуз, нормали. Так же в это включен и расчёт освещения.


В зависимости от количества геометрии в сцене и сложности шейдинга, соотношение между просчётом трассировки и просчётом шейдинга может сильно варьироваться, так на лучи иногда приходится 80% времени в случае с очень простыми сценами, тогда как в сложных — только 20.
Новые карты RTX содержат специализированные RT-ядра для ускорения именно рейкастинга. Так как это довольно сложный алгоритм, его реализация на железном уровне может привести к значительному ускорению вычислений. Однако, даже если рейкастинг бесконечно быстр и вовсе не занимает времени, прирост скорости от RT-ядер в разных сценах будет различен в зависимости от времени, требующегося именно на него. В общем случае, сцены с простыми шейдерами и большим католичество геометрии выиграют значительно больше, чем сцены с простой геометрией и сложными шейдерами.


Для иллюстрации вышесказанного, мы отрендерили одни и те же сцены обычным Vray GPU и экспериментальной версией с поддержкой RTX. Мы просчитали сцену с обычным серым материалом, а потом её же с оригинальными шейдерами. Сцена имеет 95,668,638,333 треугольников, рендер проводился с 512 семплами на пиксель

lavina-pic1.jpg
В сцене с серым материалом 76% времени расчёта ушло на рейкастинг

lavina-pic2.jpg
В той же сцене с полноценными материалами на него ушло уже 59% времени


Пока мы не вполне готовы публиковать результаты работы на ещё не вышедшем железе от Nvidia, но можем рассказать какой эффект даст новая архитектура. Сцена выше была рассчитана на предрелизной версии архитектуры Turing с бета-драйверами и на экспериментальной версии V-Ray GPU, где мы могли контролировать количество лучей, участвующих в расчёте. С более простым шейдингом большая часть времени рендера отведена на рейкастинг, в таком случае мы должны увидеть большее ускорение на RT-ядрах. Мы собираемся модифицировать V-Ray GPU таким образом, чтобы максимизировать производительность на новом железе. Так же стоит упомянуть, что сама по себе архитектура Turing значительно быстрее предыдущей Pacal, даже при работе V-Ray GPU без модификаций.


Важно отметить, что приложения должны быть значительно модифицированы для того чтобы воспользоваться преимуществами RT Cores, это значит, что существующие решения для рейтрейса не получат ускорения автоматически. Их ядра были созданы с помощью трёх API - NVIDIA OptiX, Microsoft DirectX (через расширение DXR), и Vulkan. Последние два предполагают использование в риалтаймовых задачах в игровых движках, тогда как OptiX лучше подходит для продакшена и оффлайн-рендеринга.

Мы в Chaos Group работали вместе с Nvidia около года для нахождения способов использования RT Cores в наших продуктах. V-Ray GPU — очевидное применение новой технологии и у нас уже есть экспериментальные билды, однако, оптимизация кода для полной поддержки всеми возможностями займёт время. Пока же отметим, что все актуальные релизы замечательно работают с новыми картами, хотя и не могут пользоваться RT-ускорением. С добавлением их поддержки новые версии V-Ray продолжат поддерживать предыдущие поколения карт как и раньше.


В видео ниже мы показываем версию V-Ray GPU, модифицированную для использования RT ядер. Мы не ставили целью показать производительность — мы опубликуем бенчмарки в отдельном посте блога после официального релиза железа.


Мы так же изучили возможности RT ядер в контексте рилалтайм-рейтрейса на нашем проекте Project Lavina для того чтобы понять возможности железа. Мы так же интересовались возможностью полностью заменить растеризацию рейтресингом в таких случаях. DXR был первым API для рилайлтайм расчётов с использованием нового аппаратного модуля, поэтому Project Lavina основан именно на нём. Мы так же рассматриваем Vulkan для поддержки Linix-систем в будущем. Изначальные результаты очень многообещающи и мы продолжаем разрабатывать и совершенствовать эту технологию. Очевидно, это самое начало — сейчас мы работаем над изучением возможностей трассировки в реальном времени и ожидаем быстрый прогресс в этом направлении в ближайшие месяцы, что даст нашим пользователям новые возможности работы со сценами в реальном времени без трудоёмкого процесса их конвертации для игровых движков.



Как обычно, наши решения основаны исключительно на трассировке лучей — в отличии от игровых движков, которые опираются на эту технологию лишь отчасти.
Однако, RT Cores это только часть истории. RTX карты так же поддерживают NVLink, которая позволяет суммировать память карт, доступную для рендера с минимальным влиянием на производительность.


NVLink
NVLink это порт, позволяющий соединить два или более видеопроцессора и позволить им обмениваться информацией на очень высоких скоростях. Это значит, что один GPU может обращаться к памяти другого. Следовательно, такие программы как V-Ray могут располагать в общей памяти видеокарт сцены, которые были слишком велики для одной из них. Обыкновенно во время рендера сцена дублируется в памяти всех участвующих в расчётах карт, однако NVLink позволяет объединить их память. Например, два ускорителя с 11гб на борту каждой вместе будут иметь 22гб.
NVLink был представлен в 2016 году и V-Ray был первым рендером, официально поддерживающим его в версии 3.6 и новее. До этой поры NVLink оставался прерогативой Quatro и Tesla, но теперь она вышла на пользовательский рынок.



Заключение
Попытки создать специализированное железо для рейтрейсинга были и в прошлом, но потерпели большую неудачу — частично, из-за того что шейдинг и рейкастинг обыкновенно тесно связанны и попытка рассчитать их на разном железе не давала нужной эффективности. Возможность же расчёта обоих типов алгоритмов на одном устройстве делает Nvidia RTX интересной архитектурой. Мы ожидаем что карты этой серии в будущем будут иметь большое влияние на индустрию и прочно утвердят ГПУ-рейтрейс как технологию для онлайн и оффлайн-рендеринга. Мы в Chaos Group работаем в поте лица для того чтобы дать возможность нашим пользователям воспользоваться приемущаствами нового железа.


Владо Коялазов, CTO и основатель Chaos Group.

Оригинал

Перевод — Андрей Орлов, админ паблика Motion Picture

524 0 850 4
7
2018-09-09
Поживём - увидим, что из этого получится. Однако уже радует тот факт что хаосы так плотно сотрудничают с нвидией.
2018-09-17
рейтрей-рендеринг в начале статьи
Наверное, должно быть рэйтрейс - рендеринг, если речь идет о трассировке лучей.
2018-09-17
ща поправим
asakharovрейтрей-рендеринг в начале статьи
Наверное, должно быть рэйтрейс - рендеринг, если речь идет о трассировке лучей.
2018-09-17
Intenditoreща поправим
не выходит, нет возможности редактирования
2018-09-17
Intenditore не выходит, нет возможности редактирования
Не может быть, что именно не получается? Что происходит когда вы нажимаете кнопку редактировать?
2018-09-17
Не могу найти даже намёка на кнопку редактирования. Будто это чужой пост, а не мой.
Кстати, ещё форма комментария не даёт в ней печтать, буквы не появляются, приходится набирать отдельно и вставлять
Роман Цапик Не может быть, что именно не получается?
2018-09-17
IntenditoreНе могу найти даже намёка на кнопку редактирования. Будто это чужой пост, а не мой.
Кстати, ещё форма комментария не даёт в ней печтать, буквы не появляются, приходится набирать отдельно и вставлять
Можно мне в личку вашу ОС, браузер и скрин верха страницы с постом, мы оперативно разберемся.
RENDER.RU