Das Unternehmen Intel hat die Version 1.0 des Projekts OSPRay Studio veröffentlicht, das eine Anwendung für interaktive 3D-Visualisierung mithilfe der verteilten Raytracing-Engine OSPRay entwickelt. Unter anderem kann das Programm für hochpräzises Rendering komplexer Szenen und die Verarbeitung sehr großer Szenen verwendet werden, die verteilte Berechnungen in einem Cluster aus mehreren Computern erfordern. Der Anwendungscode ist in C++ geschrieben und unter der Apache 2.0-Lizenz lizenziert. Für die Darstellung auf dem Bildschirm wird OpenGL und die Bibliothek GLFW verwendet.
Die zu rendernde Szene kann in verbreiteten Formaten geladen oder mithilfe von Knoten des Szenengraphen erstellt werden. Der Import von Modellen im MTL-Format mit Materialien für fotorealistisches Rendering, 3D-Animationen im glTF-Format, Texturen im UDIM-Format, volumetrischen spärlichen Partikeln (z.B. Wolken) im VDB-Format, Punktwolken im PCD-Format (Point Cloud Data) sowie Beleuchtungsprofilen im EULUMDAT-Format (.ldt) wird unterstützt. Der Zustand des Szenengraphen kann im JSON-Format gespeichert oder geladen werden.
Erweiterte Funktionalitäten, Widgets für die Benutzeroberfläche und Datenimport-Handler können in Form von Plug-ins hinzugefügt werden. Beispielsweise stehen Plug-ins zur Visualisierung medizinischer Daten im DICOM-Format, zur Generierung von Landschaften aus Höhenkarten, zur Verarbeitung großer Gruppen typischer Objekte (Gras, Bäume), zur Simulation astronomischer Ereignisse sowie zur Visualisierung wissenschaftlicher Daten im VTK-Format zur Verfügung.
Zur Simulation des Lichtverhaltens wird die Verwendung der Strahlenverfolgungsmethode unterstützt. Die Visualisierung kann volumetrisch oder auf einer Ebene erfolgen. Fotorealistisches Global Illumination unter Berücksichtigung der physikalischen Eigenschaften von Materialien sowie erweiterte Schatteneffekte (Schatten, Transparenz und Ambient Occlusion) werden unterstützt. Es ist möglich, Skripte zur Durchführung von Batch-Operationen zu erstellen, z.B. zum Rendern von Bildern auf einem System ohne Monitor, zur Auswahl von Renderbereichen, zur Kamerakonfiguration und zur Anpassung von Rendering- und Szenenparametern.
In der neuen Version von OSPRay Studio:
- Die Unterstützung der Funktionalität der OSPRay-Engine, die in Version 3.1 eingeführt wurde, wurde hinzugefügt.
- In die Benutzeroberfläche wurde die Unterstützung zusätzlicher Materialien integriert, die in der OSPRay-Engine unterstützt werden.
- Die Unterstützung für die API OpenEXR v2.x und v3.x wurde hinzugefügt.
- Die Erkennung von Dateiänderungen im asynchronen Modus für die automatische Aktualisierung von Texturen ist sichergestellt.
- Die API für Plugins ermöglicht den Zugriff auf die Klassen MainWindow und ArcballCamera.
- Im Batch-Modus wird die Unterstützung für verteiltes Rendern unter Verwendung von MPI bereitgestellt.
Darüber hinaus kann die Veröffentlichung einer neuen Version der 3D-Rendering-Engine OSPRay 3.1, die in OSPRay Studio 1.0 verwendet wird, erwähnt werden. Die Engine entwickelt sich als Teil eines größeren Projekts des Intel Rendering Framework, das darauf abzielt, Software-Visualisierungstools für wissenschaftliche Berechnungen (SDVis - Software Defined Visualization) zu entwickeln, einschließlich der Raytracing-Bibliothek Embree, des photorealistischen Rendering-Systems GLuRay, der Denoising-Bibliothek oidn (Open Image Denoise) und des Software-Rasterisierungssystems OpenSWR. Der Code ist in C++ geschrieben und unter der Lizenz Apache 2.0 veröffentlicht.
OSPRay richtet sich hauptsächlich an die Verwendung in interaktiven Anwendungen für das Echtzeit-Rendering von Szenen. Die Engine kann unabhängig von der GPU arbeiten, was die Nutzung der Bibliothek auf einer breiten Palette von Geräten, von Workstations bis zu Knoten in Rechenclustern, ermöglicht. Zur Gewährleistung einer optimalen Leistung werden Multithreading und Vektorisierung auf Basis von SIMD-Anweisungen wie Intel SSE4, AVX, AVX2 und AVX-512 aktiv genutzt. Das Rendering kann auf mehrere Knoten eines Clusters verteilt werden (MPI wird unterstützt), was es beispielsweise ermöglicht, OSPRay für das Rendering von Bildern mit sehr hoher Auflösung auf Videowänden zu verwenden, bei denen ein einzelnes Bild aus mehreren separaten LCD-Panels zusammengesetzt wird.
Zu den Verbesserungen in OSPRay 3.1 gehören:
- Unterstützung für die Verwendung von emittierenden Texturen mit leuchtenden Materialien.
- Die unterstützten sphärischen Objekte wurden um 'Disk' (OSP_DISC) und 'orientierte Disk' (OSP_ORIENTED_DISC) erweitert.
- Es wurden Modi für Spiegelwiederholung und Texturüberlagerung auf einer Kante (edge texture wrap) hinzugefügt.
- Für alle Texturen wurde die Unterstützung für den Modus OSPTextureWrapMode hinzugefügt.
- Vollständige Unterstützung für das Textur-Wrapping im glTF-Format wurde gewährleistet.
- Unterstützung für Denoising und Tonanpassung für Daten im Puffer wurde hinzugefügt.
- Die Unterstützung für Bewegungsunschärfe (motion blur) von bewegten Objekten wurde bei Verwendung von GPU implementiert.
Quelle: opennet.ru
