Het bedrijf Intel heeft de schaalbare 3D-renderengine OSPRay 3.0 uitgebracht, gericht op realistische hoge kwaliteit visualisatie door middel van ray tracing. De engine wordt ontwikkeld als onderdeel van een groter project, het Intel Rendering Framework, dat zich richt op het ontwikkelen van softwarematige visualisatie voor wetenschappelijke berekeningen, SDVis (Software Defined Visualization), inclusief de ray tracing bibliotheek Embree, het fotorealistische rendering systeem GLuRay, de bibliotheek voor het verminderen van ruis in afbeeldingen oidn (Open Image Denoise) en het softwarematige rasterisatiesysteem OpenSWR. De code is geschreven in C++ en uitgebracht onder de Apache 2.0-licentie.
OSPRay is voornamelijk gericht op gebruik in interactieve toepassingen voor het real-time renderen van scènes. Voor de simulatie van lichtgedrag wordt de ray tracing methode toegepast. Volumetrische en vlakke visualisatie wordt ondersteund, evenals fotorealistisch globaal licht met inachtneming van de fysische eigenschappen van materialen en geavanceerde schaduw effecten (schaduwen, transparantie en 'Ambient occlusion' schaduwen).
OSPRay kan zonder afhankelijkheid van de GPU werken, wat het mogelijk maakt om de bibliotheek op een breed scala aan apparaten te gebruiken, van werkstations tot nodes in rekencentra. Voor een optimale prestatie wordt veel gebruik gemaakt van multithreading en vectorisatie op basis van SIMD-instructies, zoals Intel SSE4, AVX, AVX2 en AVX-512 (OSPRay vereist ten minste ondersteuning voor SSE4.1).
Rendering kan verspreid worden over meerdere knooppunten in een cluster (MPI wordt ondersteund), wat het bijvoorbeeld mogelijk maakt om OSPRay te gebruiken voor het renderen van beelden met een zeer hoge resolutie op videowanden, waarbij een enkel beeld wordt samengesteld uit een reeks afzonderlijke LCD-panelen. De werking van OSPRay is bijvoorbeeld gedemonstreerd op een samengestelde display genaamd Stallion, bestaande uit 80 30-inch monitors (totaalresolutie 40960×8000 of 328 megapixels) en aangedreven door een cluster van 40 servers met 6-core CPU's gebaseerd op de Intel Sandy Bridge microarchitectuur.
Onder de toegevoegde wijzigingen:
- Er is een experimentele mogelijkheid geïmplementeerd om Intel Xe GPU's (Intel Arc serie Flex en Max) te gebruiken voor hardwareversnelling van ray tracing (in eerdere versies van OSPRay werd ray tracing alleen uitgevoerd op de CPU). GPU-ondersteuning is gerealiseerd door middel van de SYCL-laag, die het mogelijk maakt om heterogene applicaties in C++ (DPC++ — Data Parallel C++) te maken. Niet alle renderingmogelijkheden zijn momenteel beschikbaar bij het gebruik van het nieuwe apparaat 'gpu', bijvoorbeeld, knippen, vervaging en het stuk voor stuk construeren van gladde oppervlaktes (Subdivision) worden voorlopig niet ondersteund.
- Er is impliciete indexering van de geometrie van polygonale mesh toegevoegd.
- Ondersteuning voor het overdragen van eigenaar van tijdelijke buffers is toegevoegd.
- De MPI-module is geoptimaliseerd, mogelijk gemaakt door de nieuwe geïntegreerde toolset voor prestatiemonitoring.
- De gradient fill in de SciVis-renderer is geoptimaliseerd.
- Er zijn wijzigingen aangebracht in de API die de compatibiliteit verstoren. Ondersteuning voor verouderde parameters en aanroepen is stopgezet.
- De vereisten voor de minimale versies van afhankelijkheden zijn verhoogd: Embree 4.3.0, Open VKL 2.0.0, Open Image Denoise 2.1.0, ISPC 1.21.1 en rkcommon v1.12.0.


Bron: opennet.ru
