Cross-platform graphics for .NET
Documentation · Samples · API Reference · NuGet
Zenith.NET is a rendering hardware interface (RHI) for .NET, with a shared C# API for graphics and compute across DirectX 12, Metal 4, and Vulkan 1.4.
- Create buffers, textures, views, heaps, and pipelines for graphics and compute through the shared API.
- Record graphics, compute, and transfer work in command buffers. Use barriers and texture transitions to order dependent accesses, and timelines to coordinate queue submissions.
- Compile Slang shaders for the selected graphics API with
Zenith.NET.Compiler. - Use ray queries and mesh shading when the device reports support.
- Present through native swap chains or optional UI rendering controls.
Follow First Triangle to create a .NET 10 console application and draw your first triangle.
Continue with Learn for the core concepts, or browse Samples for graphics and compute examples.
| Package | Purpose |
|---|---|
| Zenith.NET | Shared graphics and compute API. |
| Zenith.NET.Compiler | Compiles Slang shaders for the selected graphics API. |
| Zenith.NET.DirectX12 | DirectX 12 implementation of the shared API. |
| Zenith.NET.Metal | Metal 4 implementation of the shared API. |
| Zenith.NET.Vulkan | Vulkan 1.4 implementation of the shared API. |
| Package | Purpose |
|---|---|
| Zenith.NET.Extensions.ImageSharp | Loads images into GPU textures using ImageSharp. |
| Zenith.NET.Extensions.ImGui | Dear ImGui rendering and input integration. |
| Zenith.NET.Extensions.Skia | SkiaSharp drawing on GPU textures. |
| Zenith.NET.Extensions.Upscaling | Spatial and temporal image upscaling. |
| Package | Purpose |
|---|---|
| Zenith.NET.Views | Shared interfaces and frame events for rendering controls. |
| Zenith.NET.Views.Avalonia | Avalonia rendering control. |
| Zenith.NET.Views.Maui | .NET MAUI rendering control. |
| Zenith.NET.Views.WinForms | Windows Forms rendering control. |
| Zenith.NET.Views.WinUI | WinUI and Uno Platform rendering control. |
| Zenith.NET.Views.WPF | WPF rendering control. |
Ask usage questions in GitHub Discussions.
