Ab4d.SharpEngine 2.1.9028-beta1

This is a prerelease version of Ab4d.SharpEngine.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package Ab4d.SharpEngine --version 2.1.9028-beta1                
NuGet\Install-Package Ab4d.SharpEngine -Version 2.1.9028-beta1                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Ab4d.SharpEngine" Version="2.1.9028-beta1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Ab4d.SharpEngine --version 2.1.9028-beta1                
#r "nuget: Ab4d.SharpEngine, 2.1.9028-beta1"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Ab4d.SharpEngine as a Cake Addin
#addin nuget:?package=Ab4d.SharpEngine&version=2.1.9028-beta1&prerelease

// Install Ab4d.SharpEngine as a Cake Tool
#tool nuget:?package=Ab4d.SharpEngine&version=2.1.9028-beta1&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

Online Ab4d.SharpEngine Reference help

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • 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
2.1.9118-beta2 99 12/19/2024
2.1.9028-beta1 175 9/20/2024
2.0.8956 972 7/9/2024
2.0.8951 261 7/4/2024
2.0.8941-rc2 204 6/24/2024
2.0.8936-rc1 195 6/19/2024
1.0.8740 1,665 12/7/2023
0.9.20-rc1 263 11/15/2023
0.9.18-beta6 234 10/20/2023
0.9.16-beta5 206 9/15/2023
0.9.15-beta4 619 8/23/2023
0.9.14-beta3 264 8/4/2023
0.9.13-beta3 999 7/11/2023
0.9.11-beta3 201 5/11/2023
0.9.10-beta3 132 5/10/2023
0.9.8-beta2 575 4/16/2023
0.9.0-beta1 244 12/14/2022

Ab4d.SharpEngine v2.1.9028-beta1
This is an intermediate beta version with the following new features (compared to v2.0):
- Added GpuStagingBuffer class that can do a batch copy of multiple buffers so we wait only once for multiple buffers copy operations. This significantly improves performance of buffer initialization (creating 1000 pyramids each with its own mesh takes now 15ms instead of 200ms).
- Added MeshUtils.CreateSmoothShadedMesh and MeshUtils.CreateFlatShadedMesh methods that can convert any mesh to a smooth shaded mesh (without any hard edges) or a flat shaded mesh (all edges are hard).
- Improved generating edge lines - in some cases GetEdgeLines method generated too many edge lines (for example after Boolean operations) or to few edges (for example after slicing the mesh with a plane).
- Fixed copying data to GPU memory on some Android emulators.
- Fixed LineSelectorData that can produce invalid results when some of the lines are completely behind the camera.
- Improved performance of LineSelectorData when the whole line is behind the camera - in this case the screen space positions are not calculated. Also added a new property IsBoundingBoxBehindTheCamera.
- Added a new overload to LineSelectorData.GetClosestPositionOnLine method that takes screenPosition (mouse 2D position) as a parameter.
- Updated setting memory type index when creating shared texture for WPF and Avalonia applications on Windows.
- Added support for devices that use non-coherent memory (some older Android and older iMac devices).
- Added support for VK_EXT_device_fault extension. This can provide some additional information on device lost on devices that support that extension.
- Improved performance of copying rendered texture to CPU (used for PresentationType = WritableBitmap or for SceneView.RenderToGpuImage).