Die Firma Intel hat die skalierbare 3D-Rendering-Engine OSPRay 3.0 veröffentlicht, die für realistische hochqualitative Visualisierungen durch Strahlenverfolgung konzipiert ist. Die Engine wird als Teil des größeren Projekts Intel Rendering Framework entwickelt, das darauf abzielt, Software-Visualisierungswerkzeuge für wissenschaftliche Berechnungen (Software Defined Visualization, SDVis) zu entwickeln. Dazu gehören die Strahlenverfolgungsbibliothek Embree, das System für fotorealistische Bilddarstellung GLuRay, die Denoising-Bibliothek oidn (Open Image Denoise) und das Software-Rasterisierungssystem OpenSWR. Der Code ist in C++ geschrieben und unter der Lizenz Apache 2.0 veröffentlicht.
OSPRay zielt hauptsächlich auf die Verwendung in interaktiven Anwendungen ab, um Szenen in Echtzeit zu rendern. Zur Simulation des Lichtverhaltens wird der Pfadverfolgungsansatz verwendet. Es wird Volumen- und Flächenvisualisierung unterstützt, fotorealistische globale Beleuchtung unter Berücksichtigung der physikalischen Eigenschaften von Materialien sowie erweiterte Schattierungs-Effekte (Schatten, Transparenz und Ambient Occlusion).
OSPRay kann unabhängig von einer GPU arbeiten, was es ermöglicht, die Bibliothek auf einer Vielzahl von Geräten zu nutzen, von Workstations bis hin zu Knoten in Rechenclustern. Um eine angemessene Leistung zu gewährleisten, wird aktiv Multithreading und Vektorisierung auf Basis von SIMD-Befehlen wie Intel SSE4, AVX, AVX2 und AVX-512 verwendet (für den Betrieb von OSPRay ist mindestens die Unterstützung von SSE4.1 erforderlich).
Das Rendering kann über mehrere Knoten eines Clusters verteilt werden (MPI wird unterstützt), was es zum Beispiel ermöglicht, OSPRay für die Darstellung von Bildern mit sehr hoher Auflösung auf Videowänden zu verwenden, wobei ein einzelnes Bild aus einem Set von separaten LCD-Panels gebildet wird. Die Leistung von OSPRay wurde beispielsweise auf einer zusammengesetzten Anzeige Stallion demonstriert, die aus 80 30-Zoll-Monitoren besteht (mit einer Gesamtauflösung von 40960×8000 oder 328 Megapixeln) und von einem Cluster aus 40 Server 6-Kern-CPUs basierend auf der Mikroarchitektur Intel Sandy Bridge betrieben wird.
Unter den hinzugefügten Änderungen:
- Die experimentelle Möglichkeit zur Nutzung der Intel Xe GPU (Intel Arc Flex- und Max-Serie) für die hardwareseitige Beschleunigung des Raytracings wurde implementiert (in früheren Versionen von OSPRay wurde das Raytracing ausschließlich auf der CPU durchgeführt). Die Unterstützung der GPU erfolgt mithilfe der SYCL-Schicht, die es ermöglicht, heterogene Anwendungen in C++ (DPC++ - Data Parallel C++) zu erstellen. Nicht alle Rendering-Möglichkeiten sind derzeit mit dem neuen Gerät „gpu“ verfügbar, beispielsweise werden Clipping, Unschärfe und die stückweise Erstellung glatter Oberflächen (Subdivision) derzeit nicht unterstützt.
- Eine implizite Indizierung der Geometrie des Polygonnetzes wurde hinzugefügt.
- Die Unterstützung für den Besitzübergang von temporären Buffern wurde hinzugefügt.
- Der MPI-Modul wurde optimiert, realisiert durch ein neues integriertes Werkzeug zur Leistungsüberwachung.
- Die Gradientenschattierung im SciVis-Renderer wurde optimiert.
- Änderungen wurden im API vorgenommen, die die Kompatibilität beeinträchtigen. Die Unterstützung von veralteten Parametern und Aufrufen wurde eingestellt.
- Die Anforderungen an die minimalen Versionen der Abhängigkeiten wurden erhöht: Embree 4.3.0, Open VKL 2.0.0, Open Image Denoise 2.1.0, ISPC 1.21.1 und rkcommon v1.12.0.


Quelle: opennet.ru
