Компания Intel опубликовала выпуск проекта OSPRay Studio 1.0, развивающего приложение для интерактивной 3D-визуализации при помощи движка распределённой трассировки лучей OSPRay. Среди прочего, программа может использоваться для высокоточного рендеринга сложных сцен и обработки очень больших сцен, требующих распределённого выполнения вычислений в кластере из нескольких компьютеров. Код приложения написан на языке С++ и распространяется под лицензией Apache 2.0. Для отрисовки на экран используется OpenGL и библиотека GLFW.
Подлежащая рендерингу сцена может быть загружена в распространённых форматах или создана при помощи узлов графа сцены (scene graph). Поддерживается импорт моделей в формате MTL с материалами для фотореалистичного рендеринга, 3D-анимации в формате glTF, текстур в формате UDIM, объёмных разряжённых частиц (например, облака) формате VDB, облаков точек в формате PCD (Point Cloud Data), профилей освещения в формате EULUMDAT (.ldt). Состояние графа сцены может быть сохранено или загружено в формате JSON.
Расширенная функциональность, виджеты для интерфейса пользователя и обработчики импорта данных могут подключаться в форме плагинов. Например, доступны плагины для визуализации медицинских данных в формате DICOM, генерации ландшафтов по карте высот, обработки больших групп типовых объектов (трава, деревья), симуляции астрономических событий, визуализации научных данных в формате VTK и т.п..
Для симуляции поведения света поддерживается использование метода трассировки пути. Визуализация может производиться в объёме или на плоскости. Поддерживается фотореалистичное глобальное освещение с учётом физических свойств материалов и расширенные эффекты затенения (тени, прозрачность и затенение “Ambient occlusion”). Возможно создание сценариев для выполнения операций в пакетном режиме, например, для рендеринга изображений на системе без монитора, выбора областей для рендеринга, настройки камеры, параметров рендеринга и сцены.
В новой версии OSPRay Studio:
- Добавлена поддержка функциональности движка OSPRay, появившейся в выпуске 3.1.
- В интерфейс пользователя встроена поддержка дополнительных материалов, поддерживаемых в движке OSPRay.
- Добавлена поддержка API OpenEXR v2.x и v3.x.
- Обеспечено определение изменений файлов в асинхронном режиме для автоматического обновления текстур.
- В API для плагинов реализована возможность доступа к классам MainWindow и ArcballCamera.
- В пакетном режиме предоставлена поддержка распределённого рендеринга с использованием MPI.
Кроме того, можно отметить публикацию несколько дней назад новой версии движка 3D-рендеринга OSPRay 3.1, задействованного в OSPRay Studio 1.0. Движок развивается как часть более крупного проекта Intel Rendering Framework, нацеленного на разработку средств программной визуализации научных расчётов SDVis (Software Defined Visualization), включающих библиотеку трассировки лучей Embree, систему фотореалистичной отрисовки GLuRay, библиотеку для устранения шумов на изображениях oidn (Open Image Denoise) и систему программной растеризации OpenSWR. Код написан на языке С++ и опубликован под лицензией Apache 2.0.
OSPRay нацелен главным образом на использование в интерактивных приложениях для отрисовки сцены на лету. Движок может работать без привязки к GPU, что позволяет использовать библиотеку на широком спектре устройств, от рабочих станций до узлов в вычислительных кластерах. Для обеспечения должной производительности активно используется многопоточность и векторизация на базе SIMD-инструкций, таких как Intel SSE4, AVX, AVX2, и AVX-512. Рендеринг может быть распределён на несколько узлов кластера (поддерживается MPI), что например, позволяет применять OSPRay для организации отрисовки изображений с очень высоким разрешением на видеостенах, единое изображение на которых формируется набором отдельных LCD-панелей.
Среди улучшений в OSPRay 3.1:
- Поддержка использования излучающих текстур со светящимися материалами.
- В число поддерживаемых сферических объектов добавлены “диск” (OSP_DISC) и “ориентированный диск” (OSP_ORIENTED_DIS).
- Добавлены режимы зеркального повторения и наложения текстуры на грань (edge texture wrap).
- Для всех текстур добавлена поддержка режима OSPTextureWrapMode.
- Обеспечена полная поддержка обёртывания текстур в формате glTF.
- Добавлена поддержка устранения шумов и корректировки тона для данных в буфере.
- При использовании GPU реализована поддержка смазывания движущихся объектов (motion blur).