Firma Intel znaczące wydanie skalowalnego silnika renderującego 3D , zaprojektowanego do realistycznej wysokiej jakości wizualizacji metodą śledzenia promieni, odpowiedniej do zastosowań w interaktywnych aplikacjach. Silnik rozwija się w ramach większego projektu , którego celem jest opracowanie narzędzi do oprogramowywania wizualizacji obliczeń naukowych (Software Defined Visualization), obejmujących bibliotekę śledzenia promieni , system fotorealistycznego rysowania , bibliotekę do redukcji szumów na obrazach i system oprogramowanej rastrowania . Kod napisany jest w języku C++ i na licencji Apache 2.0.
OSPRay jest głównie ukierunkowany na zastosowanie w interaktywnych aplikacjach do renderowania scen w czasie rzeczywistym. Do symulacji zachowania światła stosowana jest metoda . Obsługiwana jest wizualizacja w objętości i na płaszczyźnie, fotorealistyczne z uwzględnieniem właściwości fizycznych materiałów, zaawansowane efekty cieniowania (cienie, przezroczystość i cieniowanie „«).
OSPRay wykorzystuje wyłącznie możliwości CPU, nie uzależniając się od GPU, co pozwala na zastosowanie biblioteki na szerokim zakresie urządzeń, od stacji roboczych do węzłów w klastrach obliczeniowych. Aby zapewnić odpowiednią wydajność, aktywnie stosowane są wielowątkowość i wektoryzacja w oparciu o instrukcje SIMD, takie jak Intel SSE4, AVX, AVX2 i AVX-512 (do działania OSPRay wymagane jest co najmniej wsparcie SSE4.1).
Renderowanie może być rozłożone na kilka węzłów klastra (wspierane MPI), co na przykład pozwala na użycie OSPRay do organizacji renderowania obrazu o bardzo wysokiej rozdzielczości na , gdzie jedno obraz tworzone jest przez zestaw oddzielnych paneli LCD. Na przykład, działanie OSPRay zostało zaprezentowane na składanym ekranie , skomponowanym z 80 30-calowych monitorów (łączne rozdzielczość 40960×8000 lub 328 megapikseli) i obsługiwanym przez klaster z 40 serwerami z 6-rdzeniowymi CPU opartymi na mikroarchitekturze Intel Sandy Bridge.
Znacząca zmiana numeru wersji jest wynikiem dużej przebudowy API, w tym wprowadzenia zmian, które łamią zgodność (w celu uproszczenia przejścia na nowe API zaproponowano bibliotekę pośrednią, ułatwiającą migrację) oraz wprowadzenia nowych typów geometrycznych. Dodano wsparcie dla Open VKL (Open Volume Kernel Library) do renderowania objętościowego. Zrealizowano możliwość podłączenia w celu tłumienia szumów na obrazie. W oddzielne repozytoria wyodrębniono bibliotekę ospcommon oraz moduł do wsparcia MPI.
Źródło: opennet.ru
