
Neue Runtime-Loader für Bilder und Videos

Anfang letzten Jahres hat Evergine mit den Evergine.Runtimes-Bibliotheken ein bahnbrechendes Konzept eingeführt, das sorgfältig darauf ausgelegt ist, das Laden von Assets flexibler, effizienter und dynamischer zu gestalten. Diese Bibliotheken erleichtern das Laden von Assets aus lokalen Content-Repositorys oder deren dynamischen Download aus dem Internet, sodass Entwickler dynamische Inhalte nahtlos in ihre Anwendungen integrieren können.
Die erste Version umfasste:
- Evergine.Runtimes.GLB
- Evergine.Runtimes.STL
Beide Bibliotheken sind auf das Laden von 3D-Modell-Assets in den Formaten GLB und STL zur Laufzeit spezialisiert.
Mit der aktuellen Release erweitert Evergine seine Möglichkeiten um zwei zusätzliche NuGet-Pakete:
- Evergine.Runtimes.Images
- Evergine.Runtimes.Videos
Evergine.Runtimes.Images
Bisher nutzte Evergine die Bibliothek ImageSharp zum Laden von Bildern und Erstellen von Texturen. Nach intensivem Austausch mit Industriekunden und einer detaillierten Analyse ihres Feedbacks fiel die Entscheidung, das Laden von Bildern auf die leistungsstarke Bibliothek SkiaSharp umzustellen.

SkiaSharp ist eine plattformübergreifende, leistungsstarke 2D-Grafik-API auf Basis der Skia Graphics Library von Google. SkiaSharp bietet umfassende Unterstützung für Bildformate, Hardwarebeschleunigung und optimierte Bildverarbeitung auf zahlreichen Plattformen und gewährleistet so eine konsistente Rendering-Qualität und hohe Performance.
Diese strategische Umstellung auf SkiaSharp hat zu bemerkenswerten Performance-Verbesserungen geführt – mit Effizienzsteigerungen von bis zu 98 % auf allen unterstützten Plattformen.


Die Bibliothek Evergine.Runtimes.Images ermöglicht jetzt das schnelle Laden von Texturen in Echtzeit in verschiedenen Formaten, darunter BMP, JPEG, JPG, PNG und WEBP. Anders als frühere Implementierungen, die vorkompilierte Evergine-Content-Assets voraussetzten, erlaubt die neue Runtime die dynamische Erstellung von Texturen direkt aus Bildern, die aus dem Internet heruntergeladen, aus einem Cloud-Speicher abgerufen oder von Benutzern hochgeladen werden. Das erweitert die Möglichkeiten der Anwendungsentwicklung erheblich.
Die Integration der Bibliothek Evergine.Runtimes.Images in Ihr Projekt ist ganz einfach: Fügen Sie das entsprechende NuGet-Paket hinzu und folgen Sie dem bereitgestellten Implementierungsbeispiel:
![]()
Weitere technische Details finden Sie in der offiziellen Evergine-Dokumentation.
Evergine.Runtimes.Videos
Parallel zu den Verbesserungen bei Bildern führt diese Release die Bibliothek Evergine.Runtimes.Videos ein, die das komplexe Laden und Abspielen von Videos in Echtzeit plattformübergreifend vereinfacht und vereinheitlicht. Das Rendern von Videos in Echtzeit ist aufgrund unterschiedlicher plattformspezifischer Mechanismen und APIs eine große Herausforderung. Nach umfassender Recherche hat sich das Evergine-Team für FFmpeg als optimale plattformübergreifende Bibliothek entschieden, um das Laden und Abspielen von Videos zu vereinheitlichen.

FFmpeg ist ein führendes Multimedia-Framework, das praktisch jedes Multimediaformat decodieren, encodieren, transcodieren, muxen, demuxen, streamen, filtern und abspielen kann. FFmpeg ist bekannt für seine Effizienz und Vielseitigkeit und bietet eine robuste, optimierte Performance in unterschiedlichsten Hardware- und Softwareumgebungen.
Die auf FFmpeg basierende neue Bibliothek Evergine.Runtimes.Videos wurde mit gängigen Videoformaten wie MP4 (H.264), WMV, MOV und FLV gründlich getestet. Zudem unterstützt diese Runtime sowohl CPU-basiertes als auch GPU-beschleunigtes Decodieren. Das verkürzt die Decodierzeit drastisch und ermöglicht die gleichzeitige Wiedergabe mehrerer hochauflösender Videos ohne Performance-Einbußen.
Die folgende Abbildung zeigt die Video-Runtime von Evergine auf einer Windows-Plattform, die für GPU-beschleunigtes Decodieren über den Standard DXVA2 konfiguriert ist:

Hinweis: Videobeispiel erstellt mit Sora von OpenAI.
Die Videounterstützung ist in dieser Release zwar derzeit auf Windows x64 beschränkt, das Evergine-Entwicklungsteam arbeitet jedoch aktiv daran, diese Funktion in künftigen Updates auf weitere Plattformen auszuweiten.
Um diese leistungsstarke neue Runtime in Ihr Projekt zu integrieren, fügen Sie das NuGet-Paket Evergine.Runtimes.Videos hinzu und verwenden Sie die neue Komponente VideoPlayer, die in Evergine Studio verfügbar ist.

Hinweis: Komponente VideoPlayer in Evergine Studio
Eine umfassende technische Dokumentation und Implementierungsdetails finden Sie in der offiziellen Evergine-Dokumentation.
Das Evergine-Team arbeitet kontinuierlich daran, die Runtimes-Bibliotheken zu verbessern und zu erweitern, um Entwicklern das dynamische Laden von Assets zu erleichtern.
