Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

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


Трассировка лучей.

Трассировка лучей.

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

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

Компания Nvidia, еще на SIGGraph 2009 анонсировала технологию OptiX, предназначенную для трассировки лучей в реальном времени на графических процессорах их производства. Основанные на технологии OptiX рендереры уже существуют для многочисленного профессионального ПО, вроде Adobe AfterEffects, Bunkspeed Shot, Autodesk Maya, 3ds max и других приложений, и используются профессионалами в работе. К рендерингу реального времени это можно отнести лишь с определенными допущениями, потому что при высокой частоте кадров получалась очень шумная картинка. Лишь через несколько лет индустрия вплотную подошла к применению аппаратного ускорения трассировки лучей уже в играх.

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

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

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

Технологию трассировки лучей RTX компания Nvidia официально представила 20.03.2018. Microsoft анонсировала расширение программного интерфейса DirectX 12 новым компонентом DirectX Raytracing API (DXR). Благодаря данным технологиям разработчики смогут применять трассировку лучей в реальном времени для создания реалистичных графических эффектов в играх. Что касается Nvidia RTX, то на аппаратном уровне технология будет поддерживаться только графическими решениями Volta. На текущий момент на рынке присутствует лишь единственный представитель данной архитектуры в лице профессионального графического ускорителя Nvidia Titan V с рекомендованным ценником $3000.

Для осуществления возможности расчета трассировки лучей на остальных видеокартах Microsoft предлагает так называемый режим совместимости DXR, который будет реализован с помощью компонента DirectCompute. Напомним, интерфейс программирования приложений DirectCompute предназначен для выполнения вычислений общего назначения на графических процессорах и является частью API DirectX.

Архитектуру Turing называют самым главным продуктом компании Nvidia за последние 10 лет. Основной упор новой платформы для видеокарт делается на возможности в трассировке лучей в режиме реального времени — это такой метод построения объемного изображения. Благодаря новой архитектуре процесс обработки графики с использованием трассировки лучей ускорится в 6 раз. В основе новой архитектуры лежит чип Turing GPU с 18,6 миллиардами транзисторов. Он первым в линейке компании получил поддержку памяти GDDR6 с 256- и 384-разрядной шиной. Самая топовая карта Quadro RTX 8000 получила сразу 48 ГБ памяти нового поколения. В линейке видеокарт на архитектуре Turing есть три модели — Quadro RTX 5000, 6000 и 8000. Все они поддерживают технологию NVLink, благодаря чему несколько видеокарт можно объединять в один массив для наращивания производительности. Таким образом можно достичь пропускной способности в 100 ГБ/с.

Новые видеокарты на базе Turing появились в конце 2018 года. Топовая карта Quadro RTX 8000 стоит $10 тысяч или почти 700 тысяч рублей.

NVIDIA активно трудится, чтобы предоставить потенциальным клиентам готовое ПО, умеющее задействовать преимущества её новых GPU и технологии трассировки лучей RTX. Хотя речь идёт только о первых шагах в этой области, компания уже заручилась поддержкой таких влиятельных компаний, как Autodesk, Adobe, Chaos Group, Dassault Systиmes и, конечно же, Epic Games (среди прочих), чтобы поддержать технологию аппаратной трассировки лучей в том или ином виде.

Трассировкой лучей активно занимается и AMD. AMD продолжила продвигать открытые стандарты и представила Radeon Raus 2/0 для API Vulkan от Khronos Group (Vulkan - это графический и вычислительный API нового поколения, который обеспечивает высокопроизводительный кросс-платформенный доступ к современным графическим процессорам, используемым в самых разных устройствах от ПК и консолей до мобильных телефонов и встроенных платформ).

Radeon Rays (ранее носившее название AMD FireRays) представляет собой высокоэффективное, высокопроизводительное, работающее на основе метода трассировки лучей программное обеспечение, ускоренное за счет использования ресурсов графического процессора. Прослеживая траектории световых лучей, проходящих через сцену фильма или игры, технология Radeon Rays имитирует эффект отражения и преломления лучей света в среде и их взаимодействия с виртуальными объектами, создавая потрясающе фотореалистичные 3D-изображения.

Технология Radeon Rays ориентирована на разработчиков контента, стремящихся использовать возможности графических, центральных и гибридных процессоров AMD в применении метода трассировки лучей. Асинхронные вычислительные ядра графических процессоров AMD, созданных на базе архитектуры GCN (Graphics Core Next), позволяют технологии Radeon Rays выводить данные для отображения в окне просмотра трассировки лучей, в то время как приложение одновременно управляет графическим ядром.

Radeon Rays 2.0 — высокоэффективная и высокопроизводительная библиотека для гетерогенных расчётов трассировки лучей почти на любой платформе (поддерживаются Windows, macOS и Linux). Библиотека Radeon Rays 2.0 разрабатывалась с прицелом на создание фотореалистичных игр: по аналогии с DXR разработчики могут использовать её для различных эффектов затенения и освещения, полагающихся на трассировку лучей в реальном времени.

Библиотека Radeon Rays 2.0 совместима с открытым стандартом высокопараллельных расчётов общего назначения OpenCL 1.2 и использует такое преимущество Vulkan и ускорителей AMD с архитектурой GCN, как продвинутая поддержка асинхронных вычислений. AMD уже предлагает Radeon Rays 2.0 бесплатно всем заинтересованным разработчикам — последняя версия SDK может быть загружена с официальной страницы на GitHub. (Rays - лучи, FireRays - огненые лучи).


Лицензия