Ab3d.DXEngine
7.1.9105
dotnet add package Ab3d.DXEngine --version 7.1.9105
NuGet\Install-Package Ab3d.DXEngine -Version 7.1.9105
<PackageReference Include="Ab3d.DXEngine" Version="7.1.9105" />
paket add Ab3d.DXEngine --version 7.1.9105
#r "nuget: Ab3d.DXEngine, 7.1.9105"
// Install Ab3d.DXEngine as a Cake Addin #addin nuget:?package=Ab3d.DXEngine&version=7.1.9105 // Install Ab3d.DXEngine as a Cake Tool #tool nuget:?package=Ab3d.DXEngine&version=7.1.9105
Ab3d.DXEngine
Ab3d.DXEngine is a DirectX 11 rendering engine for Desktop .Net applications. Ab3d.DXEngine is built for advanced business and scientific 3D visualization.
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.
Main features
- DirectX 11 based rendering engine with full hardware rendering support.
- Render millions of triangles with using instancing, smart optimizations and other techniques to get extreme GPU performance.
- Render millions of hardware accelerated 3D lines (super-smooth lines with custom thickness, line color and line pattern).
- Render millions of characters.
- Multi-threaded rendering that can in some cases achieve more then 4 times the performance of a single thread.
- With DirectX command list caching almost ANY number of objects can be rendered in practically no CPU time (can be used when only camera or lights are changed).
- Super-fast per pixel lighting and super-sampling for improved visual quality.
- Support standard and PBR (Physically Based Rendering) materials.
- Many post processing effects.
- The most versatile 3D engine - the same application can run on systems from high end graphics card (full hardware acceleration) to computers without graphics card (DirectX 11 software rendering). The same application can also run on an old computers with operating systems that do not support DirectX 11 (using WPF 3D rendering).
- The rendered 3D scene can be composed with existing WPF objects so that standard WPF controls can be added on top of the 3D scene or seen through the scene.
- Fully managed code that works with AnyCpu (x86 or x64) build targets and can be used in C# and VB.Net. DXEngine uses SharpDX as DirectX wrapper.
- Highly customizable: use custom shaders, rendering techniques, mesh data, etc.
- Support for virtual reality with split-screen and anaglyph rendering.
- Use new engine with just a few changes of the existing WPF 3D code. The engine fully supports Ab3d.PowerToys and Abd3.Reader3ds libraries.
- Great customer support by forum or email.
Samples
Ab3d.DXEngine.Wpf.Samples on GitHub Ab3d.DXEngine.WinForms.Samples on GitHub
Homepage
Online reference help
Change log
Usage
This version of Ab3d.DXEngine can be used as an evaluation and as a commercial version.
Evaluation usage: On the first usage of the library, a dialog to start a 60-days evaluation is shown. The evaluation version offers full functionality of the library but displays an evaluation info dialog once a day and occasionally shows a "Ab3d.DXEngine evaluation" watermark text. When the evaluation is expired, you can ask for evaluation extension or restart the evaluation period when a new version of the library is available.
You can see the prices of the library and purchase it on Ab3d.DXEngine price list
Commercial usage: In case you have purchased a license, you can get the license parameters from your User Account web page (https://www.ab4d.com/UserLogIn.aspx). Then set the parametes with adding the following code before the library is used:
Ab3d.Licensing.DXEngine.LicenseHelper.SetLicense(licenseOwner: "[CompanyName]", licenseType: "[LicenseType]", license: "[LicenseText]");
Note that the version that is distributed as NuGet package uses a different licensing mechanism then the commercial version that is distributed with a windows installer. Also the LicenseText that is used as a parameter to the SetLicense method is different then the license key used in the installer.
Supported platforms
- .NET Framework 4.5+
- .NET Core 3.1
- .NET 5.0
- .NET 6.0
- .NET 7.0
- .NET 8.0
See also
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0-windows7.0 is compatible. net7.0-windows was computed. net8.0-windows was computed. net8.0-windows7.0 is compatible. net9.0-windows7.0 is compatible. |
.NET Framework | 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 is compatible. net481 was computed. |
-
.NETFramework 4.5
- SharpDX (>= 4.2.0)
- SharpDX.Direct3D11 (>= 4.2.0)
- SharpDX.DXGI (>= 4.2.0)
- SharpDX.Mathematics (>= 4.2.0)
-
.NETFramework 4.8
- SharpDX (>= 4.2.0)
- SharpDX.Direct3D11 (>= 4.2.0)
- SharpDX.DXGI (>= 4.2.0)
- SharpDX.Mathematics (>= 4.2.0)
-
net6.0-windows7.0
- SharpDX (>= 4.2.0)
- SharpDX.Direct3D11 (>= 4.2.0)
- SharpDX.DXGI (>= 4.2.0)
- SharpDX.Mathematics (>= 4.2.0)
-
net8.0-windows7.0
- SharpDX (>= 4.2.0)
- SharpDX.Direct3D11 (>= 4.2.0)
- SharpDX.DXGI (>= 4.2.0)
- SharpDX.Mathematics (>= 4.2.0)
-
net9.0-windows7.0
- SharpDX (>= 4.2.0)
- SharpDX.Direct3D11 (>= 4.2.0)
- SharpDX.DXGI (>= 4.2.0)
- SharpDX.Mathematics (>= 4.2.0)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Ab3d.DXEngine:
Package | Downloads |
---|---|
Ab3d.DXEngine.Wpf
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
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 |
|
Ab3d.DXEngine.glTF
Ab3d.DXEngine.glTF library provides a glTF 2.0 importer that can import 3D objects from glTF files to Ab3d.DXEngine 3D objects. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
7.1.9105 | 61 | 12/5/2024 |
7.0.8976 | 704 | 7/29/2024 |
7.0.8959 | 201 | 7/12/2024 |
7.0.8881 | 395 | 5/3/2024 |
7.0.8865 | 571 | 4/11/2024 |
6.1.8746 | 4,538 | 12/14/2023 |
6.0.8585 | 3,489 | 7/5/2023 |
5.2.8348 | 4,163 | 11/9/2022 |
5.1.8153 | 8,028 | 4/28/2022 |
5.1.8147 | 1,207 | 4/28/2022 |
5.0.8000 | 7,067 | 11/26/2021 |
4.4.7874 | 4,794 | 7/26/2021 |
4.4.7848 | 1,247 | 6/28/2021 |
4.3.7763 | 1,888 | 4/3/2021 |
4.3.7760 | 1,124 | 4/2/2021 |
4.2.7697 | 1,966 | 1/27/2021 |
4.2.7695 | 1,134 | 1/25/2021 |
4.2.7655 | 1,302 | 12/17/2020 |
4.1.7619 | 1,387 | 11/11/2020 |
4.0.7447 | 2,297 | 5/29/2020 |
3.3.7279 | 2,424 | 12/11/2019 |
3.2.7234 | 1,736 | 10/22/2019 |
Ab3d.DXEngine v7.1.9105 change log:
- Added .Net 9 build of Ab3d.DXEngine.
- Implemented DynamicPlanarShadowRenderingProvider that can render soft planar shadow that is darker when the objects are closer to the shodow center position. The following additional objects are added: RenderDepthShadowRenderingStep, RenderDepthShadowPostProcess.
- Added VarianceShadowMaterial that can be used to render a material that shows only the shadow that is created by the VarianceShadowRenderingProvider - other parts of the material are transparent.
- Added UseVertexIdColor property to PixelEffect. It can be set to true to set the pixel color to the index of the pixel. This can be used to render the pixels to a bitmap and use that for hit-testing (the index of the pixel under the mouse can be get from the pixel's color). See new DXEngineHitTesting/VertexIdBitmapHitTesting sample for more info.
- Allowed using 2xSSAA (2x super-sampling) and 3xSSAA and not only 1x (no super-sampling), 4x, 16x and 64x. Using 2xSSAA increases the number of pixels by 2 and increases the width and height by 1.41 (=sqrt(2)). Using 2xSSAA already provides significantly improved line quality and is 2 times faster than 4xSSAA (requires 2 times less memory and 2 times less pixel shader invocations).
- Added OptimizedHighQualityHardwareRendering to GraphicsProfile. It uses 2xSSAA instead of 4xSSAA that is used by HighQualityHardwareRendering. Note that for backward compatibility, the default GraphicsProfile in DXViewportView is still HighQualityHardwareRendering. To use the new OptimizedHighQualityHardwareRendering, set the dxViewportView.GraphicsProfiles to new GraphicsProfile[] { GraphicsProfile.OptimizedHighQualityHardwareRendering, GraphicsProfile.NormalQualitySoftwareRendering, GraphicsProfile.Wpf3D };
- Added ShortArrowAnchor and ReverseShortArrowAnchor to LineCaps enum - it can render a short arrow at the start or end of the line.
- Added ToVector3Array and ToPoint3DCollection extenstion methods to easily convert from WPF's Point3DCollection and Vector3 array.
- Added FilterEffectTypeFunction to RenderObjectsRenderingStep. It can be used on custom RenderObjectsRenderingStep to prevent rendering objects with the specified effect type.
- Add support for chaning FilterSize on SeparableKernelPostProcess and derived classes (GaussianBlurPostProcess, DownSampleWithFilerPostProcess) after it was initialized.
- Setting DXAttributes.IsCastingShadow and DXAttributes.IsReceivingShadow (calling Visual3D.SetDXAttribute method) on Visual3D now sets that DXAttribute to all child Model3D objects. This way it is possible to disable shadow rendering or receiving shadow on a group of 3D models.
- Added DisableWpfResizingOfRenderedImage to DXViewportView. It can be set to true to show slightly sharper rendered image (but requires to set UseLayoutRounding on Window or parent Grid to true otherwise image tearing can appear).
- Prevented "StartBackgroundWaiting was called but the DXScene is still waiting in background for previous frame to finish rendering..." exception.
- Prevented "childNode is already child of another SceneNode" exception that may happen when a SceneNodeVisual3D is added to the Children of a ContentVisual3D that was already initialized.
- Improved rendering line arrows for poly-lines and other connected lines that have very short line segments. The new version prevents lines arrows to be smaller than 2 times the line thickness. This can be controller by new static LineMaterial.MinLineStripArrowLength property. There is also a new static LineMaterial.MinLineListArrowLength property that controls that for individual lines and disconnected lines (by default it is set to 0).
- Added SetMinLineArrowLength and SetMaxLineArrowLength methods to ScreenSpaceLineNode. They can be used to set custom values for line arrows length instead of default values that are read from static LineMaterial.MinLineStripArrowLength and LineMaterial.MinLineListArrowLength properties.
- Prevented DirectX validation warning when using Screen Space Ambient Occlusion (SSAO) or NormalDepthEffect with a 3D scene that renders 3D lines with line caps (arrows).
- Fixed using the correct size when calling DXViewportView.RenderToBitmap without parameters and when super-sampling is used - using DXFinalPixelSize instead of DXRenderPixelSize.
- Added BlurRangeScale property to GaussianBlurPostProcess. It can be used to increase the blur amount (usually this can be achieved by bluring a smaller texture).
- Fixed changing FilterSize in GaussianBlurPostProcess after the the post-process was already used.
- Fixed moving RenderablePrimitive items to the correct RenderingQueue after the CustomRenderingQueue on WpfModelVisual3DNode has been changed after the initial set.
- Prevented showing render artifacts (usually as partially rendered image) that may occur on some devices when using shared texture (PresentationType == DirectXImage). This can be controlled by the new DXScene.IsCreatingFinalBackBufferCopy property.