Virksomheden Intel har offentliggjort den skalerbare 3D-renderingsmotor OSPRay 3.0, som er designet til realistisk høj kvalitetsvisualisering ved hjælp af ray tracing. Motoren udvikles som en del af det større projekt Intel Rendering Framework, der har til formål at udvikle softwareværktøjer til visualisering af videnskabelige beregninger SDVis (Software Defined Visualization), som inkluderer ray tracing-biblioteket Embree, systemet til fotorealistisk rendering GLuRay, biblioteket til støjreduktion i billeder oidn (Open Image Denoise) og systemet til software rasterisering OpenSWR. Koden er skrevet i C++ og offentliggjort under Apache 2.0-licensen.
OSPRay er primært rettet mod brug i interaktive applikationer til at renderere scener i realtid. Metoden til at simulere lysadfærd anvender path tracing. Der understøttes visualisering i volumener og på planer, fotorealistisk global belysning, der tager højde for de fysiske egenskaber ved materialer, samt avancerede skyggeeffekter (skygger, gennemsigtighed og 'Ambient occlusion' skygge).
OSPRay kan fungere uden binding til GPU, hvilket giver mulighed for at bruge biblioteket på en bred vifte af enheder, fra arbejdsstationer til noder i computernetværk. For at sikre passende ydeevne anvendes multithreading aktivt samt vektorisering baseret på SIMD-instruktioner såsom Intel SSE4, AVX, AVX2 og AVX-512 (OSPRay kræver mindst støtte for SSE4.1).
Renderingen kan fordeles på flere noder i klyngen (MPI understøttes), hvilket for eksempel gør det muligt at bruge OSPRay til at organisere rendering af billeder med meget høj opløsning på videovægge, hvor et enkelt billede dannes af en samling af separate LCD-paneler. For eksempel er OSPRay demonstreret på en sammensat skærm Stallion, sammensat af 80 30-tommers monitorer (total opløsning på 40960×8000 eller 328 megapixel) og betjent af en klynge med 40 servere med 6-kernet CPU'er baseret på Intel Sandy Bridge mikroarkitektur.
Blandt de tilføjede ændringer:
- Eksperimentel mulighed for at bruge Intel Xe GPU (Intel Arc-serie Flex og Max) til hardwareacceleration af ray tracing er blevet implementeret (tidligere versioner af OSPRay udførte ray tracing kun på CPU). GPU-supporten er implementeret ved hjælp af SYCL-laget, hvilket muliggør oprettelse af heterogene applikationer i C++ (DPC++ — Data Parallel C++). Ikke alle renderingsmuligheder er stadig tilgængelige ved brug af den nye enhed "gpu", for eksempel understøttes der ikke beskæring, sløring, og stykkevis konstruktion af glatte overflader (Subdivision) endnu.
- Implicit indeksering af polygonale netgeometrier er tilføjet.
- Understøttelse af overdragelse af ejerskab af midlertidige buffere er tilføjet.
- Optimering af MPI-modulet er udført ved hjælp af det nye integrerede værktøj til at overvåge ydeevnen.
- Gradientfyldningen i SciVis-rendereren er optimeret.
- API'en har fået ændringer, der bryder bagudkompatibiliteten. Understøttelsen af forældede parametre og kald er stoppet.
- Minimumskravene til afhængigheder er blevet hævet: Embree 4.3.0, Open VKL 2.0.0, Open Image Denoise 2.1.0, ISPC 1.21.1 og rkcommon v1.12.0.


Kilde: opennet.ru
