Ab3d.DXEngine 6.0.8585

.NET 5.0 .NET Core 3.1 .NET Framework 4.0
dotnet add package Ab3d.DXEngine --version 6.0.8585
NuGet\Install-Package Ab3d.DXEngine -Version 6.0.8585
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="Ab3d.DXEngine" Version="6.0.8585" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Ab3d.DXEngine --version 6.0.8585
#r "nuget: Ab3d.DXEngine, 6.0.8585"
#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 Ab3d.DXEngine as a Cake Addin
#addin nuget:?package=Ab3d.DXEngine&version=6.0.8585

// Install Ab3d.DXEngine as a Cake Tool
#tool nuget:?package=Ab3d.DXEngine&version=6.0.8585

Ab3d.DXEngine is a DirectX 11 rendering engine for Desktop .Net applications. Ab3d.DXEngine is built for advanced business and scientific 3D visualization and object manipulation.

It uses super fast rendering techniques that can fully utilize graphics cards and provide the ultimate performance. It also supports top quality visuals with PBR materials and shadows.

Ab3d.DXEngine package is the core package of the library. Usually, the Ab3d.DXEngine.Wpf package is also used.

It is also recommended to use Ab3d.PowerToys library that greatly simplifies working with 3D graphics.

Samples project:


Online users guide:

Online reference help:

Change log:

DXEngineSnoop (diagnostics tool):

Supported platforms:
- .NET Framework 4.0+
- .NET Core 3.1
- .NET 5.0
- .NET 6.0
- .NET 7.0

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net5.0-windows7.0 is compatible.  net6.0 was computed.  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.  net6.0-windows7.0 is compatible.  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.  net7.0-windows7.0 is compatible.  net8.0 was computed.  net8.0-android 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. 
.NET Core netcoreapp3.1 is compatible. 
.NET Framework net40 is compatible.  net403 was computed.  net45 is compatible.  net451 was computed.  net452 was computed.  net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Ab3d.DXEngine:

Package Downloads

Ab3d.DXEngine.Wpf library provides support for using Ab3d.DXEngine rendering engine in WPF applications and supports rendering WPF 3D objects with the engine.


Ab3d.DXEngine.Assimp provides importing 3D models from many 3D file formats for Ab3d.DXEngine rendering engine. It is using a native Assimp importer (https://github.com/assimp/assimp). Ab3d.DXEngine is a super fast DirectX 11 rendering engine for Desktop .Net applications. Ab3d.DXEngine is built for advanced business and scientific 3D visualization. The following objects are created: - MeshObjectNode for objects with meshes - SceneNode objects for groups of objects - SimpleMesh<PositionNormalTexture> for meshes - StandardMaterial for materials Known issues in v1.1: - Silk.NET.Assimp depends on Ultz.Native.Assimp library that should copy the native assimp library into the application's output folder. But this works only for .Net Core and .Net 5.0 project and not for .Net Framework project. See the sample for .Net framework project on https://github.com/ab4d/Ab3d.DXEngine.Assimp for more information. Github page with samples project: https://github.com/ab4d/Ab3d.DXEngine.Assimp See also: https://www.ab4d.com/DXEngine.aspx - Ab3d.DXEngine library (DirectX rendering engine) https://www.ab4d.com/PowerToys.aspx - Ab3d.PowerToys library (the ultimate 3D helper library) Supported platforms: - .NET Framework 4.6.1+ - .NET Core 3.1 - .NET 5.0

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
6.0.8585 1,451 7/5/2023
6.0.8578-beta1 304 6/27/2023
5.3.8564-beta1 306 6/13/2023
5.2.8348 3,502 11/9/2022
5.2.8332-beta 334 10/25/2022
5.1.8153 7,610 4/28/2022
5.1.8147 825 4/28/2022
5.0.8000 5,898 11/26/2021
4.4.7874 3,412 7/26/2021
4.4.7848 725 6/28/2021
4.3.7763 1,493 4/3/2021
4.3.7760 715 4/2/2021
4.2.7730-beta 1,102 3/2/2021
4.2.7697 1,538 1/27/2021
4.2.7695 697 1/25/2021
4.2.7655 883 12/17/2020
4.1.7619 931 11/11/2020
4.0.7447 1,799 5/29/2020
3.3.7279 1,420 12/11/2019
3.2.7234 1,219 10/22/2019

Ab3d.DXEngine v6.0.8585 change log:   
- Added support for hardware accelerated rendering of 3D lines with line caps (arrows, boxes, diamonds, etc.). This allows rendering millions of 3D lines with line caps. When DXScene.HardwareAccelerate3DLineCaps is true (by default), then 3D lines that are defined by Visual3D objects and have line caps are generated in the geometry shader (and not on the CPU as before). To manually create 3D lines with line caps, there are new constructors of ScreenSpaceLineNode that also take start and end line cap.
- Fixed rendering lines with patterns for lines that extend far beyond the screen edge or when the depth of the start and end position was very different. Before the scale of the pattern was not consistent.
- Added support for rendering line with patterns for line that have custom start and end colors.
- Added SetWorldMatrix and SetOrientation to InstancedText object. Also added a sample on how to align text with a camera.
- Added OverlayRenderingQueue and BackgroundRenderingQueue properties to DXScene.DXHitTestOptions. When OverlayRenderingQueue is specified, then in GetClosestHitObject method the objects that are assigned to that rendering queue will be considered closer to the camera than objects from other rendering queues. When BackgroundRenderingQueue is specified, then in GetClosestHitObject method the objects that are assigned to that rendering queue will be considered farther from the camera than objects from other rendering queues.
- Added ClearDepthStencilBufferBeforeRendering and ClearDepthStencilBufferAfterRendering properties to RenderingQueue. The new properties can be used to easily set up rendering queues that render object in the background or objects that are always rendered on top of other objects. See updated DXEngineAdvanced/BackgroundAndOverlayRendering.xaml sample.
- Fixed showing the Model3D that was set to ContentVisual3D.Content property when ContentVisual3D.IsVisible is set to false. The newly set Content is now correctly shown when IsVisible is set back to true (before the previous Model3D was shown).
- Improved hit-testing so that when a mesh contains duplicated triangles, hit results are returned for all of them (before the code that removed duplicate hit results when an edge between two triangles was hit also removed hit results on duplicated triangles; it was possible to solve that by setting DXScene.DXHitTestOptions.ReportAllHitTrianglesWhenEdgeIsHit to true).
- Prevented null-reference exception when trying to create an OctTree for mesh that has no TriangleIndices (for example mesh for PixelVisual3D).
- Improved getting Name of the hit object from the EventSource3D objects that are used by the DXEventManager3D
- Fixed using CustomRenderingQueue on InstancedTextNode for rendering the back text (the front text was already placed to the correct RenderingQueue).
- Improved DiagnosticsWindow (also used in DXEngineSnoop): when showing live camera information the number of displayed decimals is dynamically set based on the magnitude of the number.
- Added MeshUpdatesCount and MeshBytesUploaded to RenderingStatistics. Those two properties collect the number of vertex and index buffer changes and the amount of data that was required to create / fill the buffers. The new properties are also shown in the updated DiagnosticsWindow. This can be used to diagnose the performance of the engine.
- Added NormalDepthEffect that can render the normals and depth value of the objects to a texture.
- Added NormalDepthEdgeDetectionPostProcessing that can use NormalDepth texture to draw the edges of the objects.
- Prevented automatical switching to dynamic buffer in DXMeshGeometry3D (created from WPF's MeshGeometry3D) when the mesh is very big (indices count > 100000 - defined by DXScene.MeshTriangleIndicesCountRequiredForComplexGeometry). Using a dynamic buffer could reduce the shader performance (probably because the buffer is in host visible memory).
- Added ToWpfColor extension method that converts SharpDX.Color to WPF's Color
- Prevented throwing an exception that "Texture dimensions exceeded the maximum supported values by DirectX" when texture width or height was above 8192. The actual max width and height is 16384 (for FeatureLevel_11_0+).
- Prevented issue when some characters may be missing when using InstancedTextNode and when DXEngine transparency sorting was enabled (by setting DXScene.IsTransparencySortingEnabled to true).
- Improved performance of line rendering by reducing the number of DirectX state changes count when rendering different types of lines.
- Reduced the initialization time that is needed to create 3D lines from 3D lines defined by Ab3d.PowerToys objects: LineVisual3D, PolyLineVisual3D, MultiLineVisual3D, etc.
- Improved performance by updating sorting by material so rendering performance is improved because of better memory locality (code is reading memory in more continuous way).