Firma AMD nowy otwarty framework , oferujący narzędzia do szybkiego tworzenia prototypów gier i aplikacji graficznych, wykorzystujących API Vulkan lub DirectX12. Framework pierwotnie był stosowany wewnętrznie w firmie do tworzenia demonstracji i przykładów dla SDK. Kod projektu napisany jest w języku C++11 i na licencji MIT.
Caudron jest przedstawiany jako uproszczony silnik gier, łatwy do nauki i modyfikacji w miarę rozwoju, aby przeprowadzać różne eksperymenty. Silnik jest dołączany do aplikacji w formie biblioteki statycznie powiązanej. Składniki silnika dzielą się na cztery główne kategorie:
- Menadżery i ładowarki zasobów. Obsługiwana jest możliwość ładowania tekstur w formatach DDS, PNG, JPG itp. z możliwością tworzenia widoków obrazów. Oferowane są różne implementacje buforów do przechowywania wierzchołków i indeksów dla statycznych i dynamicznie zmieniających się obiektów geometrycznych, a także do przechowywania tekstur przed załadowaniem do pamięci wideo;
- Moduły renderowania, pozwalające na ładowanie i rysowanie modeli 3D w formacie glTF 2.0 z obsługą animacji ruchu kamery, szkieletów i światła, nałożenia tekstur, fizycznie poprawnego renderowania materiałów (PBR), punktowo ukierunkowanego światła i cieni. Obsługiwane jest rysowanie obiektów 2D w formatach PostProcPS/PS przy użyciu własnego shadera na etapie postprocessingu. Dostępny jest również komponent do tworzenia GUI oraz zestaw widżetów do tworzenia siatki współrzędnych i szkieletowego sześcianu (do ograniczających ram i stożków rozprzestrzeniania światła/kamery);
- Zestaw pomocniczych uchwytów i kodu do ustawień specyficznych dla API Vulkan;
- Typowy dla różnych systemów operacyjnych kod do obsługi operacji skalowania, trybów okiennych i pełnoekranowych, przetwarzania strumienia wiadomości między oknami itp.
W skład wchodzą również dodatkowe biblioteki: AGS do pobierania informacji o GPU, VulkanMemoryAllocator do zarządzania pamięcią w aplikacjach Vulkan, d3d12x do korzystania z API D3D12, dxc z kompilatorem shaderów dla DirectX, imgui z biblioteką GUI, json do manipulacji danymi w formacie JSON.
Źródło: opennet.ru
