Unternehmen AMD neues offenes Framework , das Werkzeuge für die schnelle Entwicklung von Prototypen von Spielen und grafischen Anwendungen bereitstellt, die die APIs Vulkan oder DirectX12 nutzen. Das Framework wurde ursprünglich intern im Unternehmen zur Entwicklung von Demos und Beispielen für das SDK verwendet. Der Code des Projekts ist in C++11 geschrieben und unterliegt der MIT-Lizenz.
Caudron wird als vereinfachte Spiele-Engine vorgestellt, die einfach zu erlernen ist und die während der Entwicklung für verschiedene Experimente modifiziert werden kann. Die Engine wird als statisch verlinkte Bibliothek an die Anwendung angehängt. Die Komponenten der Engine sind in vier Hauptkategorien unterteilt:
- Manager und Ressourcen-Loader. Es wird das Laden von Texturen in Formaten wie DDS, PNG, JPG usw. unterstützt, mit der Möglichkeit, Bildansichten zu erstellen. Es stehen mehrere Implementierungen von Buffern für die Speicherung von Vertices und Indizes für statische und dynamisch änderbare geometrische Objekte sowie für die Speicherung von Texturen vor dem Laden in den Grafikspeicher zur Verfügung;
- Rendering-Module, die das Laden und Rendern von 3D-Modellen im glTF 2.0-Format mit Unterstützung für Kamerabewegungsanimation, Skelettanimation und Beleuchtung, Texturüberlagerung, physikalisch korrektes Rendern von Materialien (PBR), punktuell gerichtetes Licht und Schatten ermöglichen. Es wird auch das Rendern von 2D-Objekten in den Formaten PostProcPS/PS mittels eines eigenen Shaders in der Nachbearbeitungsphase unterstützt. Außerdem steht die Komponente zur Verfügung, um GUIs zu erstellen und eine Sammlung von Widgets zur Erstellung eines Koordinatennetzes und eines Würfels (für Begrenzungsrahmen und das Licht-/Kamerakonusgebiet) bereitzustellen;
- Eine Sammlung von Hilfshandlern und Code für Einstellungen, die spezifisch für die API Vulkan sind;
- Betriebssystemübergreifender Standardcode zur Verarbeitung von Skalierungsoperationen, Fenster- und Vollbildmodi, zur Verarbeitung von Nachrichtenströmen zwischen Fenstern usw.
Zusätzlich sind weitere Bibliotheken enthalten: AGS zur Erfassung von Informationen über die GPU, VulkanMemoryAllocator zur Verwaltung des Speichers in Vulkan-Anwendungen, d3d12x zur Nutzung der API D3D12, dxc mit einem Shader-Compiler für DirectX, imgui mit einer GUI-Bibliothek, json zur Manipulation von Daten im JSON-Format.
Quelle: opennet.ru
