Ab4d.SharpEngine
0.9.20-rc1
See the version list below for details.
dotnet add package Ab4d.SharpEngine --version 0.9.20-rc1
NuGet\Install-Package Ab4d.SharpEngine -Version 0.9.20-rc1
<PackageReference Include="Ab4d.SharpEngine" Version="0.9.20-rc1" />
paket add Ab4d.SharpEngine --version 0.9.20-rc1
#r "nuget: Ab4d.SharpEngine, 0.9.20-rc1"
// Install Ab4d.SharpEngine as a Cake Addin #addin nuget:?package=Ab4d.SharpEngine&version=0.9.20-rc1&prerelease // Install Ab4d.SharpEngine as a Cake Tool #tool nuget:?package=Ab4d.SharpEngine&version=0.9.20-rc1&prerelease
Ab4d.SharpEngine
Ab4d.SharpEngine is a cross-platform Vulkan based 3D rendering engine for desktop and mobile .Net applications.
Vulkan is a high performance graphics and cross-platform API that is similar to DirectX 12 but can run on multiple platforms.
The following features are supported by the current version:
- Using any coordinate system (y-up or z-up, right-handed or left-handed)
- Core SharpEngine objects (Scene, SceneView)
- Many SceneNode objects (ported most of 3D objects from Ab3d.PowerToys)
- Object instancing (InstancedMeshNode)
- Cameras: TargetPositionCamera, FirstPersonCamera, FreeCamera, MatrixCamera
- Lights: AmbientLight, DirectionalLight, PointLight, SpotLight, CameraLight
- Effects: StandardEffect, SolidColorEffect, VertexColorEffect, ThickLineEffect
- ReaderObj to read 3D models from obj files
- Assimp importer that uses third-party library to import 3D models from almost any file format
Samples
Ab4d.SharpEngine.Samples on GitHub
Platforms and UI frameworks:
Windows:
- WPF full composition support with SharpEngineSceneView control (Ab4d.SharpEngine.Wpf library)
- AvaloniaUI support with SharpEngineSceneView control (Ab4d.SharpEngine.AvaloniaUI library)
- WinUI 3 support with SharpEngineSceneView control (Ab4d.SharpEngine.WinUI library)
- Using SDL or Glfw (using third-party Silk.Net library; the same project also works on Linux)
- MAUI
- WinForms support (coming soon)
Linux (including Raspberry PI 4):
- AvaloniaUI support with SharpEngineSceneView control (Ab4d.SharpEngine.AvaloniaUI library)
- Using SDL or Glfw (using third-party Silk.Net library; the same project also works on Windows)
- See "Vulkan on Resberry Pi 4" guide on how to use SharpEngine on Resberry Pi 4 with an external monitor.
Android:
- Using SurfaceView in C# Android Application
- Using SDL (using third-party Silk.Net library)
- MAUI
macOS:
- Using AvaloniaUI with SharpEngineSceneView control (Ab4d.SharpEngine.AvaloniaUI library). Requires MoltenVK library - see special project for macos.
- Using MAUI - requires MoltenVK library - see Building for macOS and iOS below.
iOS:
- Using MAUI - requires .Net 8 and MoltenVK library
Online help
Online Ab4d.SharpEngine Reference help
Expiration date:
The beta or RC version of Ab4d.SharpEngine will expire 6 months after publishing.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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. |
-
net6.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages (7)
Showing the top 5 NuGet packages that depend on Ab4d.SharpEngine:
Package | Downloads |
---|---|
Ab4d.SharpEngine.AvaloniaUI
Ab4d.SharpEngine.AvaloniaUI defines Avalonia controls that can show 3D scene rendered by Ab4d.SharpEngine rendering engine |
|
Ab4d.SharpEngine.WinUI
Ab4d.SharpEngine.WinUI defines WinUI controls that can show 3D scene rendered by Ab4d.SharpEngine rendering engine |
|
Ab4d.SharpEngine.Assimp
Ab4d.SharpEngine.Assimp provides classes that can use Assimp importer to import 3D objects into Ab4d.SharpEngine 3D rendering engine |
|
Ab4d.SharpEngine.Wpf
Ab4d.SharpEngine.Wpf defines WPF controls that can show 3D scene rendered by Ab4d.SharpEngine rendering engine |
|
Ab4d.SharpEngine.glTF
Ab4d.SharpEngine.glTF library provides a glTF 2.0 importer that can import 3D objects from glTF files to Ab4d.SharpEngine 3D objects. The library also provides a glTF exporter that can export the 3D scene created by Ab4d.SharpEngine to the glTF file. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
3.0.9175-rc3 | 49 | 2/13/2025 |
3.0.9173-rc2 | 69 | 2/11/2025 |
3.0.9169-rc1 | 127 | 2/7/2025 |
2.1.9118-beta2 | 142 | 12/19/2024 |
2.1.9028-beta1 | 180 | 9/20/2024 |
2.0.8956 | 1,048 | 7/9/2024 |
2.0.8951 | 265 | 7/4/2024 |
2.0.8941-rc2 | 210 | 6/24/2024 |
2.0.8936-rc1 | 201 | 6/19/2024 |
1.0.8740 | 1,674 | 12/7/2023 |
0.9.20-rc1 | 267 | 11/15/2023 |
0.9.18-beta6 | 238 | 10/20/2023 |
0.9.16-beta5 | 210 | 9/15/2023 |
0.9.15-beta4 | 623 | 8/23/2023 |
0.9.14-beta3 | 269 | 8/4/2023 |
0.9.13-beta3 | 1,003 | 7/11/2023 |
0.9.11-beta3 | 205 | 5/11/2023 |
0.9.10-beta3 | 136 | 5/10/2023 |
0.9.8-beta2 | 579 | 4/16/2023 |
0.9.0-beta1 | 250 | 12/14/2022 |
Ab4d.SharpEngine v0.9.20-RC1:
- Added support for custom coordinate system - it can be changed by calling Scene.SetCoordinateSystem. Supported coordinate systems: YUpRightHanded (default), YUpLeftHanded, ZUpRightHanded, ZUpLeftHanded. There are also new methods in Scene and CameraUtils that can help you get information about the coordinate system.
- Added CameraAxisPanel, which can show a small panel displaying the orientation of the X, Y, and Z axes.
- Added PngBitmapIO class to SharpEngine. It can read or write png images so no third-party library is needed anymore to import textures or save rendered bitmap to disk.
- Added SolidColorMaterial to make it easier to use solid color material (before user need to use StandardMaterial and set Effect to SolidColorEffect).
- Added PlaneModelNode.AlignWithCamera method that orients the plane model so that it is facing the camera.
- Added GetCameraPlaneOrientation to camera classes.
- Added support to load textures from stream with new overloads to LoadDiffuseTexture method in StandardMaterialBase (base class for StandardMaterial and SolidColorMaterial). Before TextureLoader was needed to create a texture from stream.
- bitmapIO parameter is now optional in the LoadDiffuseTexture method in StandardMaterialBase. When bitmapIO is null, then DefaultBitmapIO from GpuDevice is used.
- Removed SharpDX dependency from Ab4d.SharpEngine.WinUI library (add DirectX 11 interop code to the library).
- Added SharpEngineSceneView.DisableWpfResizingOfRenderedImage in Ab4d.SharpEngine.Wpf. When set to default true value, it produces sharper rendered image.
- Added EngineCreateOptions.AdditionalValidationFeatures
- Fixed using model or parent Group transformation on InstancedMeshNode.
- Fixed moving camera with MouseCameraController in some cases when using an orthographic camera
- Fixed disposing DirectX 11 device (used by Ab4d.SharpEngine.Avalonia on Windows and can be used by Ab4d.SharpEngine.Wpf with Intel gpu).
- Improved LineSelectorData so that in case the LineSelectorData is created with LineNode, then LineNode's WorldMatrix will be used to transform all the line positions.
- Improved AssimpImporter - names that are assigned to created GroupNode and MeshModelNode from Assump's Nodes are assigned more correctly.
- Updated SpriteBatch class:
- Renamed Draw method to DrawSprite
- Added DrawBitmapText method to render a 2D text behind or on top of 3D scene
- Added DrawRectangle method to render a 2D rectangle behind or on top of 3D scene
Breaking changes:
- Changed the order of parameters in TextureLoader.CreateTexture method - the bitmapIO is now optional and was moved after scene or gpuDevice parameters. When bitmapIO is not set, then DefaultBitmapIO from GpuDevice is used.
- Removed CreateTextureMaterial methods from TextureLoader. StandardMaterial and SolidColorMaterial with texture can be easily created by using class constructor and providing file name or file stream.
- Removed Scene.BitmapIO property and added VulkanDevice.DefaultBitmapIO property that is set to an instance of PngBitmapIO. This provides the default (and fallback) png loader to load textures from png files so not other third-party BitmapIO is needed.
- Renamed IBitmapIO.ConvertToBgra to ConvertToSupportedFormat and updated the code accordingly (now the rgba images are not converted to bgra anymore but are shown by the engine in its original format).
- Ranamed AssimpImporter.ImportSceneNodes method to Import. Also changed the return type from SceneNode to GroupNode.