L'azienda Intel ha rilasciato il motore di rendering 3D scalabile OSPRay 3.0, progettato per la visualizzazione realistica e di alta qualità tramite ray tracing. Il motore è in fase di sviluppo come parte di un progetto più ampio, l'Intel Rendering Framework, che mira a sviluppare strumenti di visualizzazione software per calcoli scientifici SDVis (Software Defined Visualization), comprendente la libreria di ray tracing Embree, il sistema di rendering fotorealistico GLuRay, la libreria per la rimozione del rumore di immagini oidn (Open Image Denoise) e il sistema di rasterizzazione software OpenSWR. Il codice è scritto in C++ ed è pubblicato sotto licenza Apache 2.0.
OSPRay è principalmente destinato all'uso in applicazioni interattive per il rendering in tempo reale delle scene. Per simulare il comportamento della luce viene utilizzato il metodo del ray tracing. Viene supportata la visualizzazione in volume e su superficie, illuminazione globale fotorealistica che considera le proprietà fisiche dei materiali, effetti di ombreggiatura avanzati (ombre, trasparenza e ombreggiatura 'Ambient occlusion').
OSPRay può funzionare senza dipendere dalla GPU, consentendo l'uso della libreria su una vasta gamma di dispositivi, dalle workstation ai nodi nei cluster computazionali. Per garantire le prestazioni appropriate, viene attivamente utilizzata la multithreading e la vettorizzazione basata su istruzioni SIMD, come Intel SSE4, AVX, AVX2 e AVX-512 (OSPRay richiede almeno il supporto di SSE4.1 per funzionare).
Il rendering può essere distribuito su più nodi del cluster (supporta MPI), il che consente, ad esempio, di utilizzare OSPRay per organizzare il rendering di immagini ad altissima risoluzione su videowall, dove un'unica immagine è composta da un insieme di singoli pannelli LCD. Ad esempio, il funzionamento di OSPRay è stato dimostrato su uno schermo composito Stallion, composto da 80 monitor da 30 pollici (risoluzione totale di 40960×8000 o 328 megapixel) e gestito da un cluster di 40 server con CPU esacore basate sull'architettura micro Intel Sandy Bridge.
Tra le modifiche aggiunte:
- È stata implementata una funzionalità sperimentale per l'uso della GPU Intel Xe (serie Intel Arc Flex e Max) per l'accelerazione hardware del ray tracing (nelle versioni precedenti di OSPRay, il ray tracing veniva eseguito solo su CPU). Il supporto della GPU è stato realizzato tramite un livello intermedio SYCL, che consente la creazione di applicazioni eterogenee in C++ (DPC++ - Data Parallel C++). Non tutte le funzionalità di rendering sono ancora disponibili quando si utilizza il nuovo dispositivo "gpu", ad esempio, il ritaglio, il blur e la costruzione di superfici lisce in modo frammentato (Subdivision) non sono ancora supportati.
- È stata aggiunta l'indicizzazione implicita della geometria della maglia poligonale.
- È stato aggiunto il supporto per il trasferimento della proprietà dei buffer temporanei.
- È stata ottimizzata la modulazione MPI, grazie ai nuovi strumenti integrati per il monitoraggio delle prestazioni.
- È stata ottimizzata la riempimento del gradiente nel renderer SciVis.
- Sono state apportate modifiche all'API che rompono la compatibilità. È stata interrotta la supporto per parametri e chiamate obsoleti.
- Sono stati aumentati i requisiti per le versioni minime delle dipendenze: Embree 4.3.0, Open VKL 2.0.0, Open Image Denoise 2.1.0, ISPC 1.21.1 e rkcommon v1.12.0.


Fonte: opennet.ru
