DenOfIzGraphics.Blazor
0.10.5-alpha
dotnet add package DenOfIzGraphics.Blazor --version 0.10.5-alpha
NuGet\Install-Package DenOfIzGraphics.Blazor -Version 0.10.5-alpha
<PackageReference Include="DenOfIzGraphics.Blazor" Version="0.10.5-alpha" />
<PackageVersion Include="DenOfIzGraphics.Blazor" Version="0.10.5-alpha" />
<PackageReference Include="DenOfIzGraphics.Blazor" />
paket add DenOfIzGraphics.Blazor --version 0.10.5-alpha
#r "nuget: DenOfIzGraphics.Blazor, 0.10.5-alpha"
#:package DenOfIzGraphics.Blazor@0.10.5-alpha
#addin nuget:?package=DenOfIzGraphics.Blazor&version=0.10.5-alpha&prerelease
#tool nuget:?package=DenOfIzGraphics.Blazor&version=0.10.5-alpha&prerelease
DenOfIz Graphics Library
⚠️ ALPHA SOFTWARE: DenOfIz is currently in alpha stage. The API is subject to change, and the library may(will definitely) contain bugs or missing features. You may or may not know why your code just crashed. I still do hope you use and contribute to the library though!
DenOfIz is a modern, cross-platform graphics library that provides an abstraction layer over multiple graphics APIs including DirectX12, Vulkan, and Metal. It focuses on modern rendering features and binding methods. No setUniforms or large state machines.
The API style should be familiar to anyone who used Vulkan or DirectX12, large inputs are passed via input structs, and CommandList recording is very similar in all backends.
Why:
There are many great libraries that do what I attempt to do here, but I felt like they didn't quite satisfy what I wanted:
- Build system, DenOfIz uses CMake + vcpkg.json, and provides ready-made presets for all targeted platforms.
- I wanted a single widely used shading language: HLSL
- Designed with interoperability in mind
Features
- Supported Backends:
- DirectX12 (Windows)
- Vulkan (Windows, Linux)
- Metal (macOS, arm64 only for now)
- Language Bindings:
- Native C++ API
- Modern Rendering Features:
- HLSL on all backends (DirectX12, Vulkan, Metal)
- Modern resource binding
- Compute pipelines
- Ray tracing support
- Mesh shaders
- Asset Management:
- Custom asset serialization/deserialization to optimize runtime loading
- Model loading (via Assimp)
- Texture loading
- Animation Support using ozz-animation
- Font Rendering:
- Windowing & Input:
- Wrapped SDL2 Input & window management
Example Projects
DenOfIz includes several example projects demonstrating various aspects of the library, these are very crude for now but do try to sink your teeth in.
Shaders are pretty hard to read as they are ported from all over, I'll probably work on it at some point
- SimpleTriangle: Basic rendering
- RenderTarget: Offscreen rendering
- TextRendering: Font loading and rendering
- RayTracedTriangle: Basic ray tracing(This is a port from DX12Samples)
- RayTracedProceduralGeometry: Advanced ray tracing(This is a port from DX12Samples)
- AnimatedFox: Model loading and animation, uses ozz-animation
- MeshShaderGrass: Using mesh shaders, not quite functional
- RootConstants: Demostrates use of push constants, not really a big deal
Building the Library
Build instructions for all supported platforms: How to Build.
Getting Started
Quick introduction on how to get up and running: Getting Started.
Documentation(WIP)
Roadmap:
There are some features missing in DenOfIz surely, and while we want to make sure the scope of this project remains to rendering api abstraction there are some things we would like to yet implement:
Near future:
- Command list query interface
- Command list debug interface
- Pipeline caching
Soon™:
- Java bindings
- WebGPU support, not yet clear how
- Some fallback for Intel MacBooks, not sure how OpenGL fares with HLSL
- Mobile Support
- arm64 support for Windows and Linux
License
DenOfIz is licensed under the GNU General Public License v3.0. See the LICENSE file for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.10.5-alpha | 68 | 8/30/2026 |
| 0.10.4-alpha | 75 | 8/30/2026 |
| 0.10.3-alpha | 61 | 8/30/2026 |
| 0.10.2-alpha | 56 | 8/30/2026 |
| 0.10.1-alpha | 67 | 8/29/2026 |
| 0.10.0-alpha | 58 | 8/29/2026 |
| 0.9.0-alpha | 108 | 3/2/2026 |
| 0.8.9-alpha | 79 | 3/2/2026 |
| 0.8.7-alpha | 90 | 2/28/2026 |
| 0.8.6-alpha | 82 | 2/18/2026 |
| 0.8.5-alpha | 81 | 2/17/2026 |
| 0.8.4-alpha | 85 | 2/14/2026 |
| 0.8.3-alpha | 88 | 2/12/2026 |
| 0.8.2-alpha | 77 | 2/10/2026 |
| 0.8.1-alpha | 79 | 2/10/2026 |
| 0.8.0-alpha | 86 | 2/4/2026 |
| 0.7.9-alpha | 94 | 1/30/2026 |
| 0.7.8-alpha | 95 | 1/29/2026 |
| 0.7.7-alpha | 100 | 1/29/2026 |
| 0.7.6-alpha | 87 | 1/29/2026 |
See https://github.com/MartinJespersen/DenOfIz/releases for release notes.