Ab4d.SharpEngine
2.0.8956
See the version list below for details.
dotnet add package Ab4d.SharpEngine --version 2.0.8956
NuGet\Install-Package Ab4d.SharpEngine -Version 2.0.8956
<PackageReference Include="Ab4d.SharpEngine" Version="2.0.8956" />
paket add Ab4d.SharpEngine --version 2.0.8956
#r "nuget: Ab4d.SharpEngine, 2.0.8956"
// Install Ab4d.SharpEngine as a Cake Addin #addin nuget:?package=Ab4d.SharpEngine&version=2.0.8956 // Install Ab4d.SharpEngine as a Cake Tool #tool nuget:?package=Ab4d.SharpEngine&version=2.0.8956
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. |
-
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.9028-beta1 | 159 | 9/20/2024 |
2.0.8956 | 849 | 7/9/2024 |
2.0.8951 | 254 | 7/4/2024 |
2.0.8941-rc2 | 201 | 6/24/2024 |
2.0.8936-rc1 | 193 | 6/19/2024 |
1.0.8740 | 1,650 | 12/7/2023 |
0.9.20-rc1 | 259 | 11/15/2023 |
0.9.18-beta6 | 232 | 10/20/2023 |
0.9.16-beta5 | 204 | 9/15/2023 |
0.9.15-beta4 | 618 | 8/23/2023 |
0.9.14-beta3 | 262 | 8/4/2023 |
0.9.13-beta3 | 997 | 7/11/2023 |
0.9.11-beta3 | 200 | 5/11/2023 |
0.9.10-beta3 | 130 | 5/10/2023 |
0.9.8-beta2 | 573 | 4/16/2023 |
0.9.0-beta1 | 243 | 12/14/2022 |
Ab4d.SharpEngine v2.0.8956 - hotfix
- Fixed using correct memory type for some arm based devices.
- Prevented recording commands buffer when only bounding box is changed.
- Added IsUnifiedMemory and IsDeviceLocalHostVisibleMemoryTypeAvailable properties to PhysicalDeviceDetails.
- On platforms with unified memory write data to GPU without using staging buffer. This improves buffer creation time.
- Added support for using DeviceLocal and HostVisible memory type when it is available (AMD GPU and NVIDIA GPU with newer drivers). This provides faster rendering. This can be disabled by setting EngineCreateOptions.UseDeviceLocalHostVisibleMemoryType to false.
Ab4d.SharpEngine v2.0.8951
Major new features:
- Added PixelsNode, PixelMaterial and PixelEffect that can be used to render 3D pixels and point-clouds.
- Added ModelMover that can be used to move selected 3D models in the 3D space.
- Added ModelScalar that can be used to scale selected 3D models.
- Added ModelRotator that can be used to rotate selected 3D models.
- Added MultiMaterialModelNode that defines a SceneNode with a single mesh and multiple materials. It uses SubMesh objects to define which triangles in the mesh are rendered with which material.
- Added InputEventsManager (platform specific) and ManualInputEventsManager (generic) that can be used to easily subscribe to pointer and mouse events on 3D objects.
- Significantly improved the performance of generating edge lines (can be more than 100 times faster than before). To use the new method create an instance of the EdgeLinesFactory class and call any of its public methods.
- Significantly improved the performance of LineSelectorData that can be used to select lines with pointer or mouse. See updated "HitTesting / Line selection" sample.
- Added SliceSceneNode, SliceGroupNode and SliceModelNode methods to ModelUtils. They can slice SceneNode objects by a plane.
Breaking changes:
- Renamed all classes, methods and parameters with "mouse" text to use "pointer" instead, for example: MouseCameraController => PointerCameraController, MouseButtons => PointerButtons, MouseAndKeyboardConditions => PointerAndKeyboardConditions, etc.
- Marked all methods in Color3, Color4 and BoundingBox that take parameters by ref as obsolete. There are new methods that take parameters by in keyword instead.
- BoundingBox.Transform and protected Camera.SetCameraMatrices changed ref parameter to in parameter.
Many other improvements and fixes. See https://www.ab4d.com/SharpEngine-history.aspx for the whole list of changes.