L'azienda Intel ha annunciato il rilascio del progetto OSPRay Studio 1.0, che sviluppa un'applicazione per la visualizzazione 3D interattiva attraverso il motore di tracciamento dei raggi distribuito OSPRay. Tra le altre cose, il programma può essere utilizzato per il rendering ad alta precisione di scene complesse e per l'elaborazione di scene molto grandi, che richiedono l'esecuzione distribuita dei calcoli in un cluster di più computer. Il codice dell'applicazione è scritto in C++ ed è distribuito sotto licenza Apache 2.0. Per il rendering sullo schermo viene utilizzato OpenGL e la libreria GLFW.
La scena da renderizzare può essere caricata nei formati comuni o creata tramite nodi del grafo della scena (scene graph). Viene supportato l'import dei modelli in formato MTL con materiali per il rendering fotorealistico, animazioni 3D in formato glTF, texture in formato UDIM, particelle sparse volumetriche (ad esempio, nuvole) in formato VDB, nuvole di punti in formato PCD (Point Cloud Data), profili di illuminazione in formato EULUMDAT (.ldt). Lo stato del grafo della scena può essere salvato o caricato in formato JSON.
Funzionalità estese, widget per l'interfaccia utente e gestori per l'importazione dei dati possono essere connessi sotto forma di plugin. Ad esempio, sono disponibili plugin per la visualizzazione dei dati medici in formato DICOM, generazione di paesaggi basati su mappe di altitudine, elaborazione di grandi gruppi di oggetti standard (erba, alberi), simulazione di eventi astronomici, visualizzazione di dati scientifici in formato VTK, ecc.
Per simulare il comportamento della luce è supportato l'uso del metodo di tracciamento del percorso. La visualizzazione può avvenire in volume o su un piano. È supportata l'illuminazione globale fotorealistica tenendo conto delle proprietà fisiche dei materiali e effetti avanzati di ombreggiatura (ombre, trasparenza e ombreggiatura "Ambient occlusion"). È possibile creare script per eseguire operazioni in modalità batch, ad esempio per renderizzare immagini su un sistema senza monitor, selezionare aree da renderizzare, configurare telecamere, parametri di rendering e scene.
Nella nuova versione di OSPRay Studio:
- È stata aggiunta la compatibilità con le funzionalità del motore OSPRay, introdotte nella versione 3.1.
- Nell'interfaccia utente è integrato il supporto per materiali aggiuntivi supportati nel motore OSPRay.
- È stato aggiunto il supporto per l'API OpenEXR v2.x e v3.x.
- È stata implementata la rilevazione delle modifiche ai file in modalità asincrona per l'aggiornamento automatico delle texture.
- Nell'API per i plugin è stata realizzata la possibilità di accesso alle classi MainWindow e ArcballCamera.
- In modalità batch è fornito il supporto per il rendering distribuito utilizzando MPI.
Inoltre, si segnala la pubblicazione pochi giorni fa della nuova versione del motore di rendering 3D OSPRay 3.1, utilizzato in OSPRay Studio 1.0. Il motore si sviluppa come parte di un progetto più ampio, l'Intel Rendering Framework, mirato allo sviluppo di strumenti di visualizzazione software per calcoli scientifici SDVis (Software Defined Visualization), che includono la libreria di ray tracing Embree, il sistema di rendering fotorealistico GLuRay, la libreria per la riduzione del rumore delle immagini oidn (Open Image Denoise) e il sistema di rasterizzazione software OpenSWR. Il codice è scritto in C++ ed è pubblicato con licenza Apache 2.0.
OSPRay è principalmente focalizzato sull'uso in applicazioni interattive per il rendering della scena in tempo reale. Il motore può funzionare senza essere legato alla GPU, consentendo l'uso della libreria su una vasta gamma di dispositivi, da workstation a nodi in cluster di calcolo. Per garantire prestazioni adeguate, viene utilizzata attivamente la multithreading e la vettorizzazione basata su istruzioni SIMD, come Intel SSE4, AVX, AVX2 e AVX-512. Il rendering può essere distribuito su più nodi del cluster (supportato da MPI), il che, ad esempio, consente di utilizzare OSPRay per la realizzazione di immagini ad altissima risoluzione su pareti video, dove un'unica immagine è composta da un insieme di singoli pannelli LCD.
Tra i miglioramenti in OSPRay 3.1:
- Supporto per l'uso di texture emittenti con materiali luminosi.
- Sono stati aggiunti oggetti sferici supportati, come il "disco" (OSP_DISC) e il "disco orientato" (OSP_ORIENTED_DISC).
- Aggiunti i metodi di riflessione speculare e sovrapposizione di texture sui bordi (edge texture wrap).
- Per tutte le texture è stato aggiunto il supporto per la modalità OSPTextureWrapMode.
- Garantito il pieno supporto per l'involucro delle texture nel formato glTF.
- Aggiunto il supporto per la riduzione del rumore e la correzione del tono per i dati nel buffer.
- L'utilizzo della GPU supporta il motion blur degli oggetti in movimento.
Fonte: opennet.ru
