版本 11.0.8614 修补程序
- 使用 MouseCameraController 移动相机时防止旋转 FreeCamera。
版本 11.0.8585
- 重大更改:由于专利问题删除了 ViewCubeCameraController - 请联系支持人员以获取更多信息以及如果您想继续使用此控件。
- 添加了 CameraNavigationCircles 控件,该控件显示带有轴圆的 3D 轴,并可用于旋转相机。
- 添加了对不同线条开始和结束锚点的支持,可以设置为线条的 StartLineCap 和 EndLineCap:WideArrowAnchor、WiderArrowAnchor、StealthArrowAnchor、ReverseArrowAnchor、BoxAnchor、DiamondAnchor、CircleAnchor
- 通过减少生成对象的数量来优化布尔运算。
- 添加了可选参数GenerateInnerTriangles 到Subtract 方法。当它设置为 false(默认为 true)时,不会生成闭合减法网格的内部三角形。
- 改进了当 ContentVisual3D.IsVisible 设置为 false 时更改 ContentVisual3D.Content 属性。使用 Ab3d.DXEngine 时,当 IsVisible 设置回 true 时(在显示之前的 Model3D 之前),更改后的 Model3D 现在可以正确显示。当不使用 Ab3d.DXEngine 时,IsVisible 为 false 时不允许更改 Content。在这种情况下,会抛出异常(当 IsVisible 设置回 true 时),其消息告诉用户应该使用 SetContent 来更改内容(并使用 GetContent 来读取内容)。
- 改进了使用非常接近目标位置的 OrthographicCamera 时的 MouseCameraController,以及当 ZoomMode 设置为 MousePosition 且鼠标点击没有产生任何结果时 - 在这种情况下,计算出的“缩放到位置”可能不是最佳的,这可能会将相机的位置更改为值这会导致缩小时浮点不精确。
- 向 WireCrossVisual3D 添加了新的构造函数,以通过构造函数设置位置、线条颜色和线条长度。
- 改进了 MeshInspectorOverlay 的性能,并防止当三角形的一部分位于相机后面而另一部分位于相机前面时显示无效的线条和位置。
- 向 MouseCameraController 添加了 StartCameraRotation、StartCameraMovement、StartCameraQuickZoom 和 StopCurrentMouseProcessing 方法。它们可用于在手动处理鼠标事件时显示旋转中心标记和光标。请参阅新的 CustomMouseEventsSample 示例。
- 向 BaseLineVisual3D 添加了 IsSoftwareGenerateMesh 属性。当线条的网格由 CPU 在 LinesUpdater 类中生成时,它被设置为 true。
- 防止内存泄漏,该泄漏可能会阻止收集 BaseCamera 对象(并且可能保存对 Viewport3D 和 3D 对象的引用)。当应用程序一直显示 Viewport3D 时,这不是问题,但如果不再显示 Viewport3D,则可能会因为此错误而无法清除。
- 修复了使用 WidthCellsCount 和 HeightCellsCount 为 1 时对 PlaneVisual3D 的 HeightDirection 进行归一化的问题。
Ab3d.PowerToys.Assimp:
- 使用 2023 年 7 月 3 日起更新的原生 Assimp 库;提交哈希 0dcfe2f - 本机 Assimp 库最近不会增加版本号(v5.2.5 来自 2022-09)。
- 改进了读取 Assimp 版本并添加了新的 GitCommitHash 属性以获取该版本的 Git 提交哈希值。
- 向 AssimpWpfImporter 添加了 GitCommitHash 属性。
- 向 AssimpWpfImporter 添加了灯光和相机集合,从导入器文件中获取灯光和相机。
适用于 WPF 和 WinForms 的终极 3D 图形工具包
Ab3d.PowerToys 是一款终极 WPF 和 WinForms 3D 工具包库,可大大简化使用科学、技术、CAD 或其他 3D 图形开发桌面应用程序的过程。
该库已在许多专业应用中得到验证。基于大量的用户反馈,它发展成为 3D 应用程序所需的帮助类和工具的最终集合。
该库附带的示例提供了许多构建块,您可以将它们简单地复制并包含到您的应用程序中。
Ab3d.PowerToys 使用基于 DirectX 9 的 WPF 3D 渲染引擎。这提供了良好的硬件加速,可以渲染许多 3D 场景。但当 3D 场景更加复杂时,那么就可以使用超快的 DirectX 11 渲染引擎 - Ab3d.DXEngine。更重要的是,使用 Ab3d.PowerToys 库的现有应用程序可以在几分钟内升级到具有 DirectX 11 渲染引擎的 Ab3d.DXEngine。
图书馆的主要特点是:
- 最容易使用的3D API 以及许多很棒的 C# 代码示例
- 相机(TargetPositionCamera、FreeCamera、FirstPersonCamera、ThirdPersonCamera 等)
- 相机控制器(MouseCameraController、CameraControlPanel、CameraNavigationCircles)
- 3D 模型和视觉效果(球体、盒子、圆柱体等)
- 生成挤压或车床3D 对象
- 对 3D 对象使用布尔运算或使用 3D 平面对其进行切片
- 3D 线(连接、断开和带箭头的线的最快实现)
- 3D文字
- Event Manager 3D(简化 3D 对象的事件处理)
- 许多帮助程序类可简化 WPF 3D 的工作
- 支持触摸和多点触摸来旋转、移动和缩放相机
- 使用Assimp 导入器从 obj 文件(集成在 Ab3d.PowerToys 中)或几乎所有其他 3D 文件导入 3D 模型(见下文)
- 使用 Assimp 导入器播放许多 3D 文件中的关键帧和骨骼动画
- 将 3D 模型导出为多种文件类型文件(使用 Assimp 导出器)
- 全面优化以实现最佳性能
- 当需要更快的渲染时,可以很容易地使用 Ab3d.DXEngine 切换到 DirectX 11 渲染。
- 对有关 WPF 3D 和我们的库的所有问题提供高级支持
可以使用assimp 导入器从以下文件格式导入 3D 对象:
.3d、.3ds、.3mf、.ac、.ac3d、.acc、.amf、.ase、.ask、.assbin、.b3d、.blend、 .bvh、.cob、.csm、.dae、.dxf、.enff、.fbx、.glb、.gltf、.hmp、.ifc、.ifczip、.irr、.irrmesh、.lwo、.lws、.lxo 、.md2、.md3、.md5anim、.md5camera、.md5mesh、.mdc、.mdl、.mesh、.mesh.xml、.mot、.ms3d、.ndo、.nff、.obj、.off、.ogex 、.pk3、.ply、.pmx、.prj、.q3o、.q3s、.raw、.scn、.sib、.smd、.stl、.stp、.ter、.uc、.vta、.x、. x3d、.x3db、.xgl、.xml、.zgl
可以将 3D 对象导出为以下文件格式:
dae、x、stp、obj、obj、stl、stl、ply、ply、3ds、gltf、glb、gltf、glb、assbin、assxml、x3d、fbx、 FBX,3MF。文件
要获取有关使用 Ab3d.PowerToys 的更多信息并了解使用 3D 图形创建出色的业务应用程序有多么容易,请参阅以下博客文章。
显示 3D 内容从未如此简单!
截图:
Ab3d.PowerToys 备忘单:
许多基本的 3D 对象 | 简化的相机 |