La compagnia Intel ha pubblicato la versione del progetto OSPRay Studio 1.0, che sviluppa un'applicazione per la visualizzazione 3D interattiva utilizzando il motore di ray tracing 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 di calcoli su un cluster di più computer. Il codice dell'applicazione è scritto in C++ e distribuito sotto la licenza Apache 2.0. Per il rendering sullo schermo viene utilizzato OpenGL e la libreria GLFW.
La scena da renderizzare può essere caricata in formati comuni o creata tramite nodi del grafo della scena (scene graph). È supportato l'import dei modelli in formato MTL con materiali per 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.
Le funzionalità avanzate, i widget per l'interfaccia utente e i gestori di importazione dati possono essere collegati sotto forma di plugin. Ad esempio, sono disponibili plugin per la visualizzazione di dati medici in formato DICOM, generazione di paesaggi a partire da mappe altimetriche, elaborazione di grandi gruppi di oggetti standard (erba, alberi), simulazione di eventi astronomici, visualizzazione di dati scientifici in formato VTK e così via.
Per simulare il comportamento della luce è supportato l'uso del metodo di ray tracing. La visualizzazione può avvenire in volume o su piano. È supportata l'illuminazione globale fotorealistica che tiene 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 il rendering di immagini su un sistema senza monitor, selezionare aree per il rendering, configurare la fotocamera, i parametri di rendering e la scena.
Nella nuova versione di OSPRay Studio:
- È stata aggiunta la supporto per le funzionalità del motore OSPRay introdotte nella versione 3.1.
- Nell'interfaccia utente è stata integrata la supporto per materiali aggiuntivi supportati dal motore OSPRay.
- È stato aggiunto il supporto per l'API OpenEXR v2.x e v3.x.
- È stata fornita la definizione di modifiche ai file in modalità asincrona per l'aggiornamento automatico delle texture.
- Nell'API per plugin è stata implementata la possibilità di accesso alle classi MainWindow e ArcballCamera.
- In modalità batch è stato aggiunto il supporto per il rendering distribuito utilizzando MPI.
Inoltre, è da notare la pubblicazione, alcuni 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 del Intel Rendering Framework, mirato allo sviluppo di strumenti per la visualizzazione software di 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++ e pubblicato sotto la licenza Apache 2.0.
OSPRay è principalmente destinato all'uso in applicazioni interattive per il rendering in tempo reale della scena. Il motore può operare senza vincoli a GPU, il che consente di utilizzare la libreria su una vasta gamma di dispositivi, dalle workstation ai nodi nei cluster di calcolo. Per garantire prestazioni adeguate, vengono utilizzati attivamente il 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 (supporto per MPI), il che consente ad esempio di usare OSPRay per organizzare il rendering di immagini ad altissima risoluzione su videowall, dove un'unica immagine è composta da un insieme di pannelli LCD separati.
Tra i miglioramenti in OSPRay 3.1:
- Supporto per l'uso di texture emittenti con materiali luminosi.
- Nel numero di oggetti sferici supportati sono stati aggiunti 'disco' (OSP_DISC) e 'disco orientato' (OSP_ORIENTED_DIS).
- Aggiunti i modi di ripetizione speculare e di sovrapposizione texture sul bordo (edge texture wrap).
- Per tutte le texture è stato aggiunto il supporto per la modalità OSPTextureWrapMode.
- È stato fornito il supporto completo per l'imballaggio delle texture in formato glTF.
- È stato aggiunto il supporto per la riduzione del rumore e la correzione del tono per i dati nel buffer.
- Con l'uso della GPU è stato implementato il supporto per il motion blur degli oggetti in movimento.
Fonte: opennet.ru
