Ab4d.SharpEngine
3.0.9169-rc1
dotnet add package Ab4d.SharpEngine --version 3.0.9169-rc1
NuGet\Install-Package Ab4d.SharpEngine -Version 3.0.9169-rc1
<PackageReference Include="Ab4d.SharpEngine" Version="3.0.9169-rc1" />
paket add Ab4d.SharpEngine --version 3.0.9169-rc1
#r "nuget: Ab4d.SharpEngine, 3.0.9169-rc1"
// Install Ab4d.SharpEngine as a Cake Addin #addin nuget:?package=Ab4d.SharpEngine&version=3.0.9169-rc1&prerelease // Install Ab4d.SharpEngine as a Cake Tool #tool nuget:?package=Ab4d.SharpEngine&version=3.0.9169-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
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
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 is compatible. 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.
-
net9.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.9169-rc1 | 35 | 2/7/2025 |
2.1.9118-beta2 | 138 | 12/19/2024 |
2.1.9028-beta1 | 178 | 9/20/2024 |
2.0.8956 | 1,021 | 7/9/2024 |
2.0.8951 | 263 | 7/4/2024 |
2.0.8941-rc2 | 208 | 6/24/2024 |
2.0.8936-rc1 | 199 | 6/19/2024 |
1.0.8740 | 1,672 | 12/7/2023 |
0.9.20-rc1 | 265 | 11/15/2023 |
0.9.18-beta6 | 236 | 10/20/2023 |
0.9.16-beta5 | 208 | 9/15/2023 |
0.9.15-beta4 | 621 | 8/23/2023 |
0.9.14-beta3 | 267 | 8/4/2023 |
0.9.13-beta3 | 1,001 | 7/11/2023 |
0.9.11-beta3 | 203 | 5/11/2023 |
0.9.10-beta3 | 134 | 5/10/2023 |
0.9.8-beta2 | 577 | 4/16/2023 |
0.9.0-beta1 | 248 | 12/14/2022 |
Ab4d.SharpEngine v3.0.9169 RC1:
- Added support for async image loading and buffer upload. The following new async methods are added: TextrueLoader.CreateTextureAsync, GpuImage.CopyDataToImageAsync, GpuBuffer.WriteToBufferAsync, BitmapFont.CreateAsync, BitmapTextCreator.CreateAsync, AndroidTextureLoader.CreateTextureMaterialAsync, AndroidTextureLoader.CreateTextureAsync.
- Added loadInBackground and initialDiffuseColor to StandardMaterial and SolidColorMaterial constructors that also take texture file name or texture stream as parameters. When loadInBackground is true the material is initially set to the initialDiffuseColor. When the texture is loaded, it is shown instead of the initialDiffuseColor.
- Added TrueTypeFontLoader and VectorFontFactory that can show vector text meshes and outlines from the glyph defined in TrueType font files (.ttf).
- Added new SharpEngineSceneView constructors that also take Scene as a parameter. That can be used to create a single Scene object and show it with multiple SharpEngineSceneView objects. See the new "Advanced / Multiple SceneViews" sample.
- Added BackgroundGraphicsQueue and BackgroundTransferQueue to VulkanDevice. They are created when EngineCreateOptions.EnableBackgroundResourceUpload is true (by default) and when GPU device supports more then one Graphics queue and when any Transfer queue is available. Note that when EnableBackgroundResourceUpload is true, the VulkanDevice.TransferQueue is not set (BackgroundTransferQueue is set instead).
- Improved CreateExtrudedMesh method in Ab4d.SharpEngine.Meshes.MeshFactory. Now all possible combinations of shape orientation (clockwise, counter-clockwise), simple shape / shape with holes, isYAxisUp, isSmooth, flipNormals and coordinateSystem produce the valid mesh.
- Improved EdgeLinesFactory for some cases when a triangle edge is only partially covered by another triangle.
- Improved Triangulator to correctly triangulate some more complex polygons, for example, those with multiple holes on different shapes, like % char.
- Improved optimizing positions in PolygonAnalyzer - now when more than one consecutive position lies on the same line, then all of those positions are removed.
- Show RotationCenterPosition value in in SceneView.GetCameraInfo. This method is also used by "Dump camera details" menu item in the Diagnostics window.
- Added CustomCamera, CustomAmbientLightColor and CustomViewport to RenderingLayer. When set, then all RenderingItems in the layer will use the specified camera, ambient light color and custom Viewport.
- Added ToCSharpString extension method to int[], Vector2[] and Vector3[] arrays - it produces a c# string that can be used to initialize the specified array.
- Added Convert2DShapeTo3DPositions method to Ab4d.SharpEngine.Utilities.MeshUtils.
- Added DepthBias property to LineBaseNode. This makes it much easier to set DepthBias to all line nodes.
- Fixed calculating BoundingBox when positons to MultiLineNode or PolyLineNode are set in constructor.
- Fixed rendering PolyLineNode when Positions are set to null or empty array after the PolyLineNode was already rendered.
- Set default LogLevel to Warn (changed from None).
- Prevented showing "the name DebuggerDisplay does not exist in the current contex" error in Visual Studio when debugging Ab4d.Vulkan objects.
- Fixed rendering when Scene.IsTransparencySortingEnabled is set to false.
- Added SetCustomVertexBuffer and SetCustomIndexBuffer to MeshModelNode.
- Fixed using CullCounterClockwise and CullClockwise - in the previous version, the culling mode was swapped: CullClockwise culled (removed) counter-clockwise triangles and CullCounterClockwise culled clockwise triangles. Now this is fixed. This also changes the Scene.DefaultRasterizerState from CullCounterClockwise to CullClockwise.
- Make the Dispose method in the SharpEngineSceneView virtual, so derived classes can provide their own disposal logic.