Компания Intel публикува новия мащабируем 3D рендеринг енжин OSPRay 3.0, предназначен за реалистична висококачествена визуализация чрез трасировка на лъчи. Енжинът се развива в контекста на по-голям проект на Intel, наречен Intel Rendering Framework, насочен към разработването на софтуерни средства за визуализация на научни изчисления SDVis (Software Defined Visualization), включващи библиотеката за трасировка на лъчи Embree, системата за фотореалистично рендериране GLuRay, библиотеката за намаляване на шум в изображенията oidn (Open Image Denoise) и системата за софтуерна растеризация OpenSWR. Кодът е написан на C++ и е публикуван под лицензия 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.
Сред добавените промени:
- Възможността за използване на Intel Xe GPU (серия 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.


Източник: opennet.ru
