Jump to content

Оптикс

Нвидиа Оптикс
Разработчик(и) Нвидиа
Стабильная версия
8.0 / август 2023 г. ( 2023-08 )
Написано в С / С++
Операционная система Linux , OS X , Windows 7 и более поздние версии
Тип Трассировка лучей
Лицензия Проприетарное программное обеспечение , бесплатное для коммерческого использования.
Веб-сайт Сайт разработчика Nvidia OptiX

Nvidia OptiX ( OptiX Application Acceleration Engine ) — это трассировки лучей API , который был впервые разработан примерно в 2009 году. [1] Вычисления передаются на графические процессоры через низкоуровневый или высокоуровневый API, представленный в CUDA . CUDA доступен только для графических продуктов Nvidia. Nvidia OptiX является частью Nvidia GameWorks . OptiX — это высокоуровневый API, или API «для алгоритма», что означает, что он предназначен для инкапсуляции всего алгоритма, частью которого является трассировка лучей, а не только самой трассировки лучей. Это предназначено для того, чтобы позволить движку OptiX выполнять более крупный алгоритм с большой гибкостью без изменений на стороне приложения.

Обычно в видеоиграх используется растеризация для рендеринга , а не трассировка лучей.

По словам Nvidia , OptiX спроектирован так, чтобы быть достаточно гибким для «процедурных определений и гибридных подходов к рендерингу». Помимо рендеринга компьютерной графики , OptiX также помогает в оптическом и акустическом проектировании, радиационных и электромагнитных исследованиях. [2] запросы искусственного интеллекта и коллизий . анализ [3]

Трассировка лучей с помощью OptiX [ править ]

Набор Julia , нарисованный с помощью NVIDIA OptiX (это образец SDK ) .

OptiX работает, используя предоставленные пользователем инструкции (в форме ядер CUDA ) относительно того, что луч должен делать в определенных обстоятельствах, чтобы имитировать полный процесс трассировки. [4]

Луч света (или, возможно, другой тип луча) может вести себя по-разному при попадании на определенную поверхность, а не на другую. OptiX позволяет настраивать эти условия попадания с помощью пользовательских программ. Эти программы написаны на CUDA C или непосредственно в коде PTX и связаны друг с другом при использовании движка OptiX.

Чтобы использовать OptiX, CUDA с поддержкой в системе должен быть доступен графический процессор и установлен набор инструментов CUDA.

Использование механизма OptiX в приложении трассировки лучей обычно включает в себя следующие шаги:

  • Определение программ для генерации лучей (например, лучи можно снимать параллельно, в перспективе или как градиентное поле), отсутствия луча (когда луч не пересекает какой-либо объект), дополнительной программы-исключения (когда луч не может быть снят) по какой-то причине), программа ограничивающего прямоугольника (программа, которая обеспечивает проверку пересечения ограничивающего прямоугольника для данного объекта) и программа пересечения.

программы. Несколько примеров этих программ доступны в SDK

// Sample code using OptiX APIs //

/* Ray generation program */
rtProgramCreateFromPTXFile( *context, path_to_ptx, "pinhole_camera", &ray_gen_program );
rtContextSetRayGenerationProgram( *context, 0, ray_gen_program );

/* Miss program */
rtProgramCreateFromPTXFile( *context, path_to_ptx, "miss", &miss_program );
rtContextSetMissProgram( *context, 0, miss_program );

/* Bounding box and intersection program */
rtProgramCreateFromPTXFile( context, path_to_ptx, "box_bounds", &box_bounding_box_program );
rtGeometrySetBoundingBoxProgram( *box, box_bounding_box_program );
rtProgramCreateFromPTXFile( context, path_to_ptx, "box_intersect", &box_intersection_program );
rtGeometrySetIntersectionProgram( *box, box_intersection_program );

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

  • Создайте материал для программ любого попадания и ближайшего попадания: эти две программы определяют поведение луча при его первом пересечении (ближайшее попадание) или общем пересечении (любое попадание).
// Sample code using OptiX APIs //

rtProgramCreateFromPTXFile( context, path_to_ptx, "closest_hit_radiance", &closest_hit_program );
rtProgramCreateFromPTXFile( context, path_to_ptx, "any_hit_shadow", &any_hit_program );

/* Associate closest hit and any hit program with a material */
rtMaterialCreate( context, material );
rtMaterialSetClosestHitProgram( *material, 0, closest_hit_program );
rtMaterialSetAnyHitProgram( *material, 1, any_hit_program );
  • Определите буферы переменные , которые могут использоваться внутри поставляемых программ. Буферы — это области памяти, которые позволяют коду хоста (т. е. обычному коду ЦП ) взаимодействовать с кодом устройства (т. е. кодом, который выполняется на графическом процессоре ) и наоборот. Переменные — это внутренний способ взаимодействия OptiX и использования буферов для передачи данных туда и обратно.
  • Определите иерархию OptiX геометрических объектов, групп, селекторов и других узлов для создания древовидного графа всей сцены, подлежащей рендерингу.
Пример дерева графов для Nvidia OptiX

Чтобы визуализировать сложную сцену или отслеживать различные пути для любого луча, OptiX использует преимущества вычислений GPGPU, используя платформу Nvidia CUDA . Поскольку процесс съемки лучей и настройка их поведения легко настраиваемы, OptiX можно использовать во множестве других приложений, помимо трассировки лучей.

Оптикс Прайм [ править ]

Начиная с OptiX 3.5.0 в комплект была добавлена ​​вторая библиотека под названием OptiX Prime, целью которой является предоставление быстрого низкоуровневого API для трассировки лучей — построения структуры ускорения , пересечения структуры ускорения и пересечения луча и треугольника . Prime также имеет резервный режим ЦП, если в системе не найден совместимый графический процессор. В отличие от OptiX, Prime не является программируемым API, поэтому в нем отсутствует поддержка пользовательских примитивов, не являющихся треугольниками, и затенения. Будучи непрограммируемым, OptiX Prime не инкапсулирует весь алгоритм, частью которого является трассировка лучей. Таким образом, Prime не может перекомпилировать алгоритм для новых графических процессоров, провести рефакторинг вычислений для повышения производительности или использовать сетевое устройство, такое как Quadro VCA, и т. д.

Программное обеспечение с использованием OptiX [ править ]

См. также [ править ]

Ссылки [ править ]

  1. ^ «Планирование в OptiX, механизме трассировки лучей Nvidia» (PDF) . 15 августа 2009 г.
  2. ^ Фельбекер, Роберт; Рашковский, Лешек; Койсген, Вильгельм; Питер, Майкл (2012). «Распространение электромагнитных волн в миллиметровом диапазоне волн с использованием механизма трассировки лучей NVIDIA OptiX GPU». 2012 г. 6-я Европейская конференция по антеннам и распространению радиоволн (EUCAP) . IEEE Эксплор. стр. 488–492. дои : 10.1109/EuCAP.2012.6206198 . ISBN  978-1-4577-0920-3 . S2CID   45563615 .
  3. ^ Стивен Дж. Паркер; Хайко Фридрих; Дэвид Любке; Кейт Морли; Джеймс Биглер; Джаред Хоберок; Дэвид Макаллистер; Остин Робисон; Андреас Дитрих; Грег Хамфрис; Морган Макгуайр; Мартин Стич (2013). «Журнал «Связь ACM — трассировка лучей GPU» . Коммуникации АКМ . 56 (5). АКМ: 93–101. дои : 10.1145/2447976.2447997 . S2CID   17174671 . Проверено 14 августа 2013 г.
  4. ^ Стивен Дж. Паркер; Джеймс Биглер; Андреас Дитрих; Хайко Фридрих; Джаред Хоберок; Дэвид Любке; Дэвид Макаллистер; Морган Макгуайр; Кейт Морли; Остин Робисон; Мартин Стич (2010). «OptiX: механизм трассировки лучей общего назначения» . Транзакции ACM с графикой . 29 (4). АКМ: 66:1–66:13. дои : 10.1145/1778765.1778803 . Проверено 14 августа 2013 г.
  5. ^ «Бенч-тесты Blender 2.81 на 19 видеокартах NVIDIA — производительность рендеринга RTX OptiX невероятна» . phoronix.com. 2019 . Проверено 26 ноября 2019 г.
  6. ^ «D-NOISE: Быстрое шумоподавление AI для Blender» . Ремингтон Креатив . 20 июля 2019 г. Проверено 14 декабря 2019 г.
  7. ^ «Adobe демонстрирует OptiX в демонстрации технологии трассировки лучей анимационной графики с помощью графических процессоров» . NVIDIA. 2013. Архивировано из оригинала 20 декабря 2021 года . Проверено 14 августа 2013 г.
  8. ^ «Nvidia объявляет программу Gameworks на Монреале 2013; поддерживает SteamOS» . NVIDIA. 2013 . Проверено 29 октября 2013 г.
  9. ^ «Изменения графического процессора (для CUDA и OpenGL) в After Effects CC (12.1) | Область интересов After Effects» . Проверено 22 февраля 2015 г.
  10. ^ «Журнал изменений Daz Studio» . ДАЗ 3D . Проверено 14 декабря 2019 г.
  11. ^ «Новые возможности версии 2.5 – LuxCoreRender» .

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 7d71cc2395ebd1c5a6966ef4f53333d0__1714697340
URL1:https://arc.ask3.ru/arc/aa/7d/d0/7d71cc2395ebd1c5a6966ef4f53333d0.html
Заголовок, (Title) документа по адресу, URL1:
OptiX - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)