Дополнение. OptiX, iray, RealityServer

Слайд с презентации NVIDIA на SIGGRAPH 2009 на котором представлена информация о интерактивном рейтрейсере — NVIDIA OptiX.

Вот мы и добрались до самого вкусного и интересного раздела дополнений. Хочется сразу вернуться на 1,5 года назад, когда я предрекал некоторым своим друзьям о скором будущем, когда Raytracing можно будет рассчитывать за минуты и причем в очень сложных сценах. Конечно, тогда все смеялись над таким заявлением. Но теперь смеяться не над чем. И так, OptiX — интерактивный визуализатор трассировки лучей, базирующийся на NVIDIA CUDA, и который может быть встроен в любой софт. Дело только за разработчиками. OptiX был представлен на SIGGRAPH 2009 на стенде NVIDIA.

На данный момент, OptiX на финальной стадии разработки, но то, что сделано уже сейчас впечатляет. Давайте посмотрим на то, что мы получаем и, что можно рассчитывать с помощью OptiX'a:

Ключевые особенности NVIDIA OptiX.

При этом, главное преимущество OptiX практически полная открытость для расширения и надстроек. Вы можете создавать свои собственные шейдеры, ИС, виртуальные камеры и многое другое. После чего, используя GPU NVIDIA Quadro FX создавать свои проекты с меньшими затратами времени на ожидание и исправления. Хотя пока на данный момент все это требует серьезной доработки в плане дружественности с пользователем, но в течение ближайшего года следует ожидать кардинальных изменений в нашем с вами программном обеспечении.

NVIDIA OptiX является частью AXE — Application Acceleration Engines, набор модулей для разработчиков в который помимо OptiX включены еще такие модули как SceniX и CompleX, но о них я расскажу в одной из следующих статей.

Слайд с презентации NVIDIA на SIGGRAPH 2009 на котором, представлена информация о новой системе визуализации mental images iray.

Наконец, для пользователей системы визуализации mental ray появилась возможность использовать все потенциалы GPU для визуализации самых сложных и насыщенных различными сложными поверхностями сцены. На SIGGRAPH 2009 был презентован новый продукт от mental images – iray. iray базируясь на архитектуре NVIDIA CUDA, позволяет использовать для визуализации все возможности GPU. iray является как компонента mental ray, так и RealityServer. Плюс ко всему, mental ray 3.8 с iray в течение ближайшего года будет интегрирован во все программы, создаваемые в OEM партнерстве с mental images. К примеру, следующие 3ds Max или Maya, а также SI, возможно будут обладать возможностью расчета финальной картинки с помощью mental ray и iray.

Если взглянуть на это с технической стороны, то модель данных решений выглядит следующим образом. Данные из приложения посылаются системе визуализации, в свое время программа проанализировав эти данные и настройки запускает визуализатор, а он, базируясь на архитектуре NVIDIA CUDA выполняет вычисления с помощью CPU и GPU.

Схема использования GPU приложениями использующими код на CUDA. Для примера показана схема для OptiX или iray. Учтите что OptiX — интерактивная система, а iray это компонент mental ray 3.8 или RealityServer. Как интегрированные в DCC приложения, так и работающих независимо от них.

Вот как раз для расчетов на GPU применяется драйвер с поддержкой CUDA. Драйвер для работы с OptiX должен быть не ниже версии 190.38 (какой я использовал при написании этой статьи и подготовки демонстрационного материала). Данный драйвер уже поддерживает CUDA версии 2.3.

Но, а на какую графическую подсистему рассчитывается применение технологии OptiX и iray? Все как всегда сводится к вопросу о производительности и стабильности, и здесь как всегда ответ сам приходит на ум — Quadro FX и Tesla. Преимущество Tesla состоит в том, что она занимается исключительно расчетами — в таком случае можно использовать её как мощнейший сопроцессор. В случае с Quadro и Tesla мы получаем стабильность и гарантию того что все будет выполнено как задумано художником и не будет такого момента как перегоревшая в самый неподходящий момент GPU или сбои в работе оборудования. Хотя это можно и приписать к минусу — ведь далеко не все пользователи позволят себе покупку более дорогой Quadro и тем более Tesla. Однако подождем выхода конечных продуктов, непосредственно в приложениях для DCC и посмотрим, как будут реализованы эти технологии.

Ах, да совсем забыл сказать, что на данный момент для OptiX рекомендуется применение GPU NVIDIA Quadro FX 3800 и выше. Хотя я с достаточно большим успехом запустил демонстрационные примеры и на своей Quadro FX 1800. Все дело упирается в количество потоковых процессоров. У NVIDIA Quadro FX 1800 их 64, а у Quadro FX 3800 их уже 192 (как и у Quadro FX 4800CX). И чем больше потоковых процессоров — тем лучше. Хм, раньше мы пытались под «кипение кристалла ЦП» заставить визуализироваться сложные сцены, теперь будем пытаться заставить «кипеть» кристалл графического ускорителя 8).