Cauldron is a framework library for rapid prototyping using either the Vulkan® or Direct3D® 12 APIs.

| DOWNLOAD - Latest version 1.2

This release adds the following features:

  • [Enhancement] Texture loading and MIP generation now uses multithreading (DX12/VK).
  • [Enhancement] Pipeline generation and shader compiler use now multithreading (DX12/VK).
  • [New] Benchmarking mode can now save screenshots for every keyframe (DX12).
  • [New] Extensions can be enabled from the app side (VK).
  • [Enhancement] Uses DXC for HLSL code (DX12/VK).

| FEATURES

Easy to extend

Rapid prototyping

Open source, MIT license

Cauldron is developed by AMD and is being used internally by several teams. Cauldron is open source and has been designed to be simple and easy to extend.

The Cauldron framework includes the following features:

  • glTF 2.0 file loader.
    • Animation for cameras, objects, skeletons and lights.
    • Skinning.
      • Baking skinning into buffers (DX12 only).
    • Rendering techniques.
      • Motion vectors.
      • Depth pass only.
      • PBR Materials.
        • Metallic-roughness.
        • Specular-glossiness (KHR_materials_pbrSpecularGlossiness).
      • Lighting (KHR_lights_punctual extension).
        • Spot Lights w/ Shadows (up to 4).
        • Image-based Lighting (IBL) CubeMaps.
    • Shadow techniques.
      • Shadow maps.
      • Shadow masks (DX12 only).
  • Postprocessing.
    • TAA (DX12 only).
    • Bloom.
    • HDR/Tonemapping.
  • Texture Loaders for DDS, JPEG and PNG formats.
    • MIPMap generation for powers-of-two textures.
  • In-app user interface using Dear ImGui.
  • Rendering Resource Management.
    • Command Buffer ring.
    • Timestamp queries.
    • Memory Heap Manager (Linear Allocator).
    • Static buffers for VB/IB/CB with suballocation support.
    • Dynamic buffers for VB/IB/CB using a ring buffer.
  • Debug Rendering.
    • Wireframe bounding boxes.
    • Light frustums.
  • Window management and swapchain creation
    • Fullscreen/Windowed modes.
  • Support for DXC/SM6.x.
  • FreeSync™2 HDR support.
  • Shader binary and PSO caching.
  • Multithreading loading and creation of resources.
    • Textures and MIPMap generation.
    • Shader compilation.
    • Pipeline creation.
  • VK extensions in-app support.

| AS USED IN:

Compressonator

Compressonator is a set of tools to allow artists and developers to more easily work with compressed assets and easily visualize the quality impact of various compression technologies.

TressFX

The TressFX library is AMD’s hair/fur rendering and simulation technology. TressFX is designed to use the GPU to simulate and render high-quality, realistic hair and fur.

| RELATED SAMPLE

Cauldron is packaged with glTFSample, a basic sample that can generate images like the ones below with a few lines of code.

GLTFSample Cauldron Sample Project

This sample demonstrates how to use most of Cauldron’s features. It is also a useful reference for getting started with developing your own samples and prototypes.

| GALLERY

| VERSION HISTORY

  • [new] TAA (DX12).
  • [new] Shadowmasks (DX12).
  • [new] Basic benchmark mode.
  • [new] Motion vector pass (DX12/VK).
  • [new] Frustum culling (DX12/VK).
  • [new] Directional lights support.
  • [new] PBR pass is more modular and now can output intermediate values into a GBuffer (DX12/VK).
  • [new] Shadows now use PCF (VK).
  • [new] FreeSync ™️ 2 HDR support (DX12/VK).
  • Initial release.
  • glTF 2.0 File loader.
    • Animation for cameras, objects, skeletons and lights.
    • Skinning.
    • Rendering techniques.
      • Depth pass only.
      • PBR Materials.
        • Metallic-Roughness.
        • Specular-Glossiness (KHR_materials_pbrSpecularGlossiness).
      • Lighting (KHR_lights_punctual extension).
        • Spot Lights w/ Shadows (up to 4).
        • Image-Based Lighting (IBL) CubeMaps.
    • Shadow techniques.
      • Shadow maps.
  • Postprocessing.
    • Bloom.
    • HDR/Tonemapping.
  • Texture Loaders for DDS, JPEG and PNG formats.
    • MIPMap generation for powers-of-two textures.
  • In-app user interface using Dear ImGui.
  • Rendering Resource Management.
    • Command Buffer Ring.
    • Timestamp Queries.
    • Memory Heap Manager (Linear Allocator).
    • Static buffers for VB/IB/CB with suballocation support.
    • Dynamic buffers for VB/IB/CB using a ring buffer.
  • Debug Rendering.
    • Wireframe Bounding Boxes.
    • Light Frustums.
  • Window management & swapchain creation.
    • Fullscreen/Windowed Modes.
  • Shader Binary and PSO caching.

| OUR OTHER EFFECTS

FEMFX

A multithreaded CPU library for deformable material physics, using the Finite Element Method (FEM)

DepthOfFieldFX

The DepthOfFieldFX library provides a GCN-optimized Compute Shader implementation of Depth of Field using the Fast Filter Spreading approach.

GeometryFX

GeometryFX improves the rasterizer efficiency by culling triangles that do not contribute to the output in a pre-pass. This allows the full chip to be used to process geometry, and ensures that the rasterizer only processes triangles that are visible.

ShadowFX

ShadowFX library provides a scalable GCN-optimized solution for deferred shadow filtering. It supports uniform and contact hardening shadow (CHS) kernels.

TressFX

The TressFX library is AMD’s hair/fur rendering and simulation technology. TressFX is designed to use the GPU to simulate and render high-quality, realistic hair and fur.