Interested Article - OptiX
- 2020-07-14
- 2
OptiX ( nVidia OptiX ) — графический движок для визуализации методом трассировки лучей c использованием технологии CUDA компании nVidia . Трассировка лучей может быть использована как метод анализа и исследования геометрических систем при помощи вычисления распространения волн или частиц.
Описание
Общее описание
Движок nVIDIA OptiX является частью набора модулей для разработчиков в который, кроме OptiX, включены ещё такие модули как и . Все они интегрируется в сторонние приложения .
nVidia OptiX является программным средством, реализующим рендеринг методом трассировки лучей (рэйтрейсинга) в режиме реального времени при помощи графических процессоров ( англ. GPU ) производства nVidia. OptiX использует технологию CUDA для выполнения вычислений на графических процессорах. Хотя основной особенностью OptiX является рендеринг при помощи трассировки лучей, также поддерживается классическая растеризация . Таким образом, OptiX является гибридным рендерером. Несмотря на то, что OptiX — графический движок, он может использоваться в неграфических вычислениях. Область использования OptiX — все вычислительно интенсивные задачи, к которым можно применить трассировку лучей (здесь под «трассировкой лучей» понимается не трассировка лучей применительно к компьютерной графике, а трассировка лучей как метод анализа и исследования геометрических систем при помощи вычисления распространения волн или частиц, см. ( англ. )) .
OptiX предоставляет программируемый конвейер рэйтрейсинга с использованием языка программирования С , с наложенными на него ограничениями. OptiX позиционируется разработчиками как очень гибкий движок, который можно детально настраивать и адаптировать к конкретным задачам. Пользователи OptiX, — разработчики приложений, — могут ускорить те задачи по трассировке лучей, которые им нужны. Гибкость OptiX начинается в абстракции исполнения и заканчивается на отдельных лучах, что значительно упрощает расчёты для одного луча в одну единицу времени. Данные, которые несёт и собирает луч, полностью настраиваемые. Данные, поступающие на OptiX, также программируемые, что позволяет использовать программируемые шейдеры для новых методик, программируемые пересечения для процедурных типов поверхностей, и программируемые виртуальные камеры для потенциала при композитинге .
OptiX содержит такие критически важные для него функции, как параллелизм (как внутри графического процессора, так и между графическим и центральным процессором ), использования таких структур данных, как k-мерные деревья и ( англ. ), а также разные обходные алгоритмы. Использование мощностей графического процессора контролируется через встроенный в OptiX модуль по балансировке нагрузки. В связи с тем, что OptiX является гибридным рендерером, он обеспечивает поддержку графических API типа OpenGL , что позволяет комбинировать рэйтрейсинговые и растеризационные методики рендеринга для дополнительной гибкости .
Системные требования
OptiX первой версии требует наличия профессиональных видеокарт семейства nVidia Quadro FX или nVidia Tesla . OptiX второй версии имеет поддержку архитектуры nVidia Fermi , поэтому способен выполняться на видеокартах, в которых установлен графический процессор GF100. Причём поддерживаются не только профессиональные видеокарты, но и пользовательские модели GeForce, такие как GeForce 480 и GeForce 470. Ещё одним нововведением OptiX 2 стала поддержка пользовательских видеокарт серии GeForce 200 (GT200) . Однако при использовании серии GT200 нужна видеокарта GeForce GTX 260 и мощнее .
Полный список графических процессоров, видеокарты с использованием которых поддерживаются движком OptiX 2 :
-
Профессиональные видеокарты:
- Линейка Quadro FX : Quadro FX 5800, Quadro FX 4800, Quadro FX 3800, Quadro CX
- Линейка : Quadro Plex 2200 D2, Quadro Plex 2200 S4
- Линейка Nvidia Tesla : Tesla S1070, Tesla M1060, Tesla C1060, Tesla RS
- Tesla C2050
-
Пользовательские видеокарты:
- Линейка GeForce 200 : GeForce GTX 260, GTX 260 Cre 216, GTX 275, GTX 280, GTX 285, GTX 295
- Линейка GeForce 400 : GeForce GTX 480, GTX 470
- Линейка GeForce 500
- Линейка GeForce 600
- Линейка GeForce 700
- Линейка GeForce RTX : GeForce RTX 20xx, RTX 30xx, RTX 40xx
Кроме видеокарт с определёнными графическими процессорами, требуется x86 -совместимый центральный процессор .
Для работы OptiX необходима версия v.190 графического драйвера NVIDIA Unified Graphics Driver или более поздняя. Для GT200 требуется CUDA Toolkit версии 2.3 и выше, а для GF100 — CUDA Toolkit 3.0 и выше. Также требуется C/C++ компилятор: для Microsoft Windows — Visual Studio 2005 или Visual Studio 2008, а для Linux — gcc 4.2 или 4.3. Кроме этого, требуется кроссплатформенная система автоматизации сборки программного обеспечения из исходного кода CMake версии 2.6.3 или более поздней .
Движком OptiX поддерживаются как 32-битные операционные системы, так и 64-битные :
- Microsoft Windows ( Windows XP , Windows Vista , Windows 7 )
- Linux
- MacOS 10.5 (только 32-битная версия)
Интегрирован в ПО
- Blender имеет поддержку OptiX с версии 2.81
- Дополнение Blender от 4 июля 2020 на Wayback Machine использует OptiX для улучшения производительности шумоподавления на основе ИИ
- от 25 июня 2020 на Wayback Machine — рендерер на графическом процессоре реального времени использующий трассировку лучей и растеризацию базируется на Nvidia OptiX
- На SIGGRAPH 2011 Adobe показала OptiX в технодемо трассировки лучей на графическом процессоре для анимационного дизайна.
- На SIGGRAPH 2013 OptiX был представлен в инструменте предварительного просмотра освещения компании Pixar .
- OptiX был интегрирован в фреймворк вместе с PhysX и другими графическими движками и фреймворками на CUDA .
- Adobe After Effects CC
- имела интеграцию OptiX Prime Acceleration вместе с Iray, но поддержка была убрана в версии 4.12.1.8
Использование и примеры
OptiX может использоваться в множестве задач: создание фотореалистичных моделей, дизайн автомобилей, разработка музыкальных инструментов и оптических систем, расчеты ёмкости и исследования радиации, анализ соударений и во всех остальных, где может использоваться алгоритм трассировки лучей . OptiX может быть задействован в приложениях, использующих движок управления сценой , таких как , и .
nVidia поместила на своём официальном сайте ряд примеров, демонстрирующих работу OptiX" :
- Whitted ( рус. Уиттед ) — пример работы трассировки лучей, который разработал Тернер Уиттед ( англ. Turner Whitted ), демонстрирует преломления, отражения и прозрачность процедурной геометрии и материалов.
- Cook ( рус. Кук ) — пример работы трассировки лучей, который разработал Роб Кук ( англ. Rob Cook ), демонстрирует глянцевые отражения, Depth Of Field и объектный Motion Blur .
- Julia ( рус. Жюлиа ) — данный пример демонстрирует множество Жюлиа , которое представлено фракталом , размещённым над сценой, которая полностью процедурно сгенерирована. Фрактал постоянно деформируется во времени. Для сцены и фрактала производится пересечение луча и фрактала и вычисление ambient occlusion в реальном времени.
- Glass — данный пример демонстрирует реалистичное стекло с большим количеством преломлений и отражений.
- Whirligig ( рус. Юла ) — на этом примере непрерывная анимация юлы демонстрирует скорость обновления трансформаций объекта и свойства материалов вместе с генерацией отражений и отбрасыванием теней.
- Ambient Occlusion — данный пример показывает непрерывный расчёт глобального освещения с использованием метода Ambient Occlusion . Данная демонстрация позволяет пользователю загружать в неё свои собственные OBJ -файлы с трёхмерными геометрическими моделями.
История
Впервые об OptiX было объявлено 6 августа на международной ежегодной конференции SIGGRAPH 2009, которая проходила с 3 по 7 августа включительно в Новом Орлеане . На SIGGRAPH 2009 было объявлено название движка, его основная функциональность, нацеленность на определённые задачи, основные особенности и т. д. Джефф Браун, главный менеджер отдела профессиональных решений nVidia, так прокомментировал анонс OptiX: «Мир расчетов переместился от вычислений только лишь на процессоре к уравновешенной совместной обработке на CPU и GPU. Движки ускорения приложений от nVidia вооружают разработчиков инструментами, в которых они нуждаются для осуществления дальнейшего коренного изменения, как в области графики в реальном времени, так и сложного анализа данных». , основатель и президент аналитического дома , во время анонса заявил, что «за один год nVidia смогла перейти от слов о том, что интерактивная визуализация методом трассировки лучей возможна, к созданию этой возможности для всех» .
До данного анонса OptiX программное средство nVidia по реализации трассировки лучей в реальном времени называлось NVIRT (Nvidia Interactive Raytracer) .
Кроме OptiX, на SIGGRAPH 2009 были анонсированы , и 64-битная версия PhysX . Было заявлено, что OptiX будет доступен осенью 2009 года и будет работать на профессиональных графических картах (видеокартах) nVidia Quadro .
В конце августа 2009 года nVidia разместила на своём сайте примеры использования движка OptiX. Было опубликовано три примера: Whitted (демонстрация преломлений, отражений и прозрачных объектов), Cook (демонстрация Depth Of Field и Motion Blur ) и Julia (процедурные объекты и расчёт Ambient Occlusion ) .
5 ноября 2009 года, как и было обещано на SIGGRAPH 2009, nVidia выпустила OptiX. OptiX был выложен в открытый доступ в виде OptiX SDK . Вместе с выпуском было объявлено, что движок работает на профессиональных видеокартах серий Quadro FX и nVidia Tesla , а также на серии пользовательских видеокарт GeForce 200 .
22 января 2010 года nVidia выпустила первую бета-версию OptiX 2, основной особенностью которой является её переработка под архитектуру графических процессоров nVidia Fermi . Также в этой версии присутствует возможность работы движка не только на профессиональных видеокартах Quadro и Tesla, но и на пользовательских видеокартах GeForce .
13 марта 2010 года была выпущена третья бета-версия OptiX 2, которая добавила предварительную поддержку первых видеокарт на базе Fermi и взаимодействие на уровне текстур и буферов с Direct3D .
29 июля 2010 года nVidia представила новые профессиональные графические процессоры и видеокарты линейки Quadro , основанные на базе архитектуры Fermi . Особенностью данных видеокарт является расширенная поддержка движков ускорения приложений ( англ. Application Acceleration Engine — AXE ), одним из которых является OptiX. Было заявлено, что графический процессор Quadro 6000 увеличит производительность в AXE до пяти раз по сравнению с моделями предыдущего поколения данной линейки. «Quadro является выбором профессионалов № 1 во всем мире уже более десяти лет. Мы также построили движки, такие как AXE, чтобы стимулировать создание приложений нового поколения», — сказал Джефф Браун ( англ. Jeff Brown ), директор по профессиональным решениям в nVidia, по поводу данного анонса . В этот же день в рамках SIGGRAPH 2010 был анонсирован выпуск новых версий движков ускорения приложений. Была выпущена стабильная версия OptiX 2, которая, по сравнению с предыдущими, была оптимизирована для выполнения на новых графических процессорах Quadro, а также получила поддержку Direct3D и возможность быстрой работы в Direct3D и OpenGL для гибкого композитинга и гибридного рендеринга . Кроме этого, на SIGGRAPH 2010 сотрудниками nVidia была проведена презентация «OptiX: A General Purpose Ray Tracing Engine» в рамках сеанса «GPU rendering» .
Примечания
- . Официальный сайт nVidia (русскоязычная версия сайта). — Описание движков, ускоряющих приложения, и их список. Дата обращения: 15 мая 2010. 25 апреля 2012 года.
- ↑ Сергей и Марина Бондаренко. . 3DNews (6 августа 2009). Дата обращения: 15 мая 2010. 18 августа 2010 года.
- ↑ . Официальный сайт nVidia (русскоязычная версия сайта). — Главная страница OptiX и его краткое описание. Дата обращения: 15 мая 2010. 25 апреля 2012 года.
- ↑ Вячеслав Коломин. . (6 августа 2009). Дата обращения: 15 мая 2010. 25 апреля 2012 года.
- ↑ (англ.) . Официальный сайт nVidia — подраздел разработчиков (19 января 2010). — Главная страница OptiX на подразделе разработчиков и его детальное описание. Дата обращения: 15 мая 2010. 25 апреля 2012 года.
- ↑ Константин Ходаковский. . (5 ноября 2009). Дата обращения: 15 мая 2010. 25 апреля 2012 года.
- ↑ DrEvil. . (22 января 2010). Дата обращения: 15 мая 2010. 25 апреля 2012 года.
- ↑ (англ.) . Официальный сайт nVidia — подраздел разработчиков (10 мая 2010). — Описание и системные требования бета-версии OptiX 2. Дата обращения: 15 мая 2010. 25 апреля 2012 года.
- . phoronix.com (2019). Дата обращения: 26 ноября 2019. 27 ноября 2019 года.
- . Remington Creative (20 июля 2019). Дата обращения: 14 декабря 2019. 14 декабря 2019 года.
- . NVIDIA (2013). Дата обращения: 14 августа 2013. 17 августа 2011 года.
- . NVIDIA (2013). Дата обращения: 29 октября 2013. 1 ноября 2013 года.
- . Дата обращения: 22 февраля 2015. 12 ноября 2018 года.
- . DAZ 3D . Дата обращения: 14 декабря 2019. 13 декабря 2019 года.
- ↑ (англ.) . Официальный сайт nVidia — подраздел разработчиков (9 ноября 2009). — Список технологических демонстраций OptiX. Дата обращения: 15 мая 2010. 18 июня 2012 года.
- ↑ JeGX. (англ.) . (27 августа 2009). Дата обращения: 15 мая 2010. 25 апреля 2012 года.
- ↑ Глеб Лебедев. . GameDev.ru (21 сентября 2009). Дата обращения: 15 мая 2010. 30 ноября 2012 года.
- . (26 декабря 2008). Дата обращения: 18 января 2010. 24 марта 2012 года.
- ↑ Thilo Bayer. (англ.) . PC Games Hardware (7 августа 2009). Дата обращения: 15 мая 2010. 25 апреля 2012 года.
- Глеб Лебедев. . GameDev.ru (5 ноября 2009). Дата обращения: 15 мая 2010. 30 ноября 2012 года.
- . (8 ноября 2009). Дата обращения: 15 мая 2010. 25 апреля 2012 года.
- DrEvil. . (13 марта 2010). Дата обращения: 15 мая 2010. 25 апреля 2012 года.
- Евгений Давыдов. . (29 июля 2010). Дата обращения: 31 июля 2010. 25 апреля 2012 года.
- Евгений Давыдов. . (29 июля 2010). Дата обращения: 31 июля 2010. 25 апреля 2012 года.
- . (28 июля 2010). Дата обращения: 22 августа 2010. 25 апреля 2012 года.
- (англ.) . ACM Digital Library (июль 2010). Дата обращения: 22 августа 2010.
- Steven G. Parker, James Bigler, Andreas Dietrich, Heiko Friedrich, Jared Hoberock, David Luebke, David McAllister, Morgan McGuire, Keith Morley, Austin Robison, Martin Stich. (англ.) (PDF). research.nvidia.com (август 2010). — Прямая ссылка на полную версию презентации. Дата обращения: 22 августа 2010. 25 апреля 2012 года.
Ссылки
- . Официальный сайт nVidia (русскоязычная версия сайта). — Главная страница OptiX и его краткое описание. Дата обращения: 15 мая 2010. 25 апреля 2012 года.
- (англ.) . Официальный сайт nVidia — подраздел разработчиков (19 января 2010). — Главная страница OptiX на подразделе разработчиков и его детальное описание. Дата обращения: 15 мая 2010. 25 апреля 2012 года.
- 2020-07-14
- 2