Intel выпустил движок распределённой трассировки лучей OSPRay 3.0

Компания Intel опубликовала масштабируемый движок 3D-рендеринга OSPRay 3.0, предназначенный для реалистичной высококачественной визуализации методом трассировки лучей. Движок развивается как часть более крупного проекта Intel Rendering Framework, нацеленного на разработку средств программной визуализации научных расчётов SDVis (Software Defined Visualization), включающих библиотеку трассировки лучей Embree, систему фотореалистичной отрисовки GLuRay, библиотеку для устранения шумов на изображениях oidn (Open Image Denoise) и систему программной растеризации OpenSWR. Код написан на языке С++ и опубликован под лицензией Apache 2.0.

OSPRay нацелен главным образом на использование в интерактивных приложениях для отрисовки сцены на лету. Для симуляции поведения света применяется метод трассировки пути. Поддерживается визуализация в объёме и на плоскости, фотореалистичное глобальное освещение с учётом физических свойств материалов, расширенные эффекты затенения (тени, прозрачность и затенение “Ambient occlusion“).

OSPRay может работать без привязки к GPU, что позволяет использовать библиотеку на широком спектре устройств, от рабочих станций до узлов в вычислительных кластерах. Для обеспечения должной производительности активно используется многопоточность и векторизация на базе SIMD-инструкций, таких как Intel SSE4, AVX, AVX2, и AVX-512 (для работы OSPRay как минимум требуется поддержка SSE4.1).

Рендеринг может быть распределён на несколько узлов кластера (поддерживается MPI), что например, позволяет применять OSPRay для организации отрисовки картинки с очень высоким разрешением на видеостенах, единое изображение на которых формируется набором отдельных LCD-панелей. Например, работа OSPRay продемонстрирована на составном экране Stallion, скомпонованном из 80 30-дюймовых мониторов (общее разрешение 40960×8000 или 328 мегапикселей) и обслуживаемого кластером из 40 серверов с 6-ядерными CPU на базе микроархитектуры Intel Sandy Bridge.

Среди добавленных изменений:

  • Реализована экспериментальная возможность использования GPU Intel Xe (Intel Arc серии Flex и Max) для аппаратного ускорения трассировки лучей (в прошлых версиях OSPRay трассировка лучей выполнялась только на CPU). Поддержка GPU реализована при помощи прослойки SYCL, позволяющей создавать гетерогенные приложения на языке C++ (DPC++ – Data Parallel C++). Не все возможности рендегинга пока доступны при использовании нового устройства “gpu”, например, пока не поддерживается обрезка, размытие и кусочное построение гладких поверхностей (Subdivision).
  • Добавлена неявная индексация геометрии полигональной сетки.
  • Добавлена поддержка передачи владения временными буферами.
  • Проведена оптимизация модуля MPI, реализованная благодаря новому интегрированному инструментарию для отслеживания производительности.
  • Оптимизирована градиентная заливка в рендере SciVis.
  • В API внесены изменения, нарушающие совместимость. Прекращена поддержка устаревших параметров и вызовов.
  • Повышены требования к минимальным версиям зависимостей: Embree 4.3.0, Open VKL 2.0.0, Open Image Denoise 2.1.0, ISPC 1.21.1 и rkcommon v1.12.0.




Release. Ссылка here.