
Aspose.3D for .NET
C# .NET API,用于创建、编辑和转换 3D 图表
实用的计算机辅助设计 (CAD) API,使软件开发者能够生成 3D 场景、管理 3D 网格,并以多种格式导出 3D 文件。
什么是 Aspose.3D for .NET?
功能丰富的计算机辅助设计(CAD)API,Aspose.3D for .NET 使 .NET 开发人员能够在无需在计算机上安装 3D 建模和渲染软件的情况下,生成并处理多种文件格式的文件。该库的 .NET 应用程序可以轻松集成 3D 功能,打造令人惊叹的设计和可视化效果。开发者无需复杂的编码或 3D 知识,即可使用简便的 API 快速、轻松地在其 .NET 应用中加入 3D 功能。
Aspose.3D for .NET 支持众多基础和高级的 3D 功能,包括网格几何处理、动画插值和层次变换。该库能够打开、读取、写入、修改和转换多种常用文件格式的 3D 文件,如 FBX、STL、Collada、AMF、PLY、GLTF、OBJ 和 3DS。该库极其易于使用,且在客户端和服务器端的表现同样出色。此外,它通过让开发者能够与广泛的 3D 模型和资源交互,简化了在应用中加入 3D 功能的过程。
创建 3D 场景、从流中加载文件、将文件保存并转换为流、处理几何体、在多个节点之间共享网格几何数据、向场景文档添加动画属性、向场景添加目标摄像机、按材质拆分网格、渲染 3D 视图、创建圆柱体、通过拉伸形状创建几何体,以及许多其他功能,都是该库实现的。Aspose.3D 始终是希望生成惊艳 3D 可视化、设计交互式 3D 应用程序,或仅仅为现有 .NET 应用程序添加一些 3D 功能的软件开发人员的最佳选择。
Aspose.3D for .NET 入门指南
推荐的 Aspose.3D for .NET 安装方式是使用 NuGet。请使用以下命令以顺利完成安装。
通过 C# .NET API 编程生成并保存 3D 场景
Aspose.3D for .NET 为软件开发人员提供了从头生成新 3D 场景并在其自己的 C# 应用程序中保存为任何受支持文件格式的能力。该库允许加载现有 3D 场景,添加资产信息,改变平面方向,访问其属性,对其进行修改,并将其保存为各种流行的文件格式,如 PDF、HTML 等。该库还支持将 3D 文档保存为不同的 3D 格式,如 FBX、STL、DAE、RVM、OBJ、3DS、DRC 等。
如何通过 .NET API 生成 3D 场景文档?
var output = RunExamples.GetOutputFilePath("document.fbx");
// Create an object of the Scene class
Scene scene = new Scene();
// Save 3D scene document
scene.Save(output, FileFormat.FBX7500ASCII);
通过 .NET 将 3D 文档转换为其他文件格式
Aspose.3D for .NET 允许程序员在自己的 .NET 应用程序中打开并转换各种受支持文件格式的 3D 文档。使用 C# 3D 文档处理库,只需加载任意受支持文件格式的 3D 文档,并使用适当的 FileFormat 参数调用其保存方法。该库支持将 3D 场景转换为 PDF、HTML、FBX、DAE、3DS、DRC、GLTF、OBJ、STL、RVM 等多种格式。
如何通过 C# API 将 3D 文档导出为其他文件格式?
// load the file to be converted
var scn = new Aspose.ThreeD.Scene(dir + "template.fbx");
// save in different formats
scn.Save(dir + "output.stl", Aspose.ThreeD.FileFormat.STLASCII);
scn.Save(dir + "output.obj", Aspose.ThreeD.FileFormat.WavefrontOBJ);
通过 .NET API 创建和管理 3D 网格
Aspose.3D for .NET 为软件开发人员提供在自己的 C# 应用程序中处理 3D 网格的能力。该库允许生成各种 3D 几何形状的网格,以最简方式定义控制点和多边形来创建网格。该库还支持在多个节点之间共享网格几何数据,从而有助于更好的内存管理。它支持多项重要功能,例如在 3D 文件中合并和拆分网格、为 3D 文件中的所有网格生成法线数据、将 3D 网格编码为 Google Draco 文件、将单个 3D 对象的网格转换为 PLY 文件、将网格转换为三角网格以及将原始形状转换为网格等。
如何通过 .NET API 按材质拆分场景中的所有网格?
// Create a mesh of box(A box is composed by 6 planes)
Mesh box = (new Box()).ToMesh();
// Create a material element on this mesh
VertexElementMaterial mat = (VertexElementMaterial)box.CreateElement(VertexElementType.Material, MappingMode.Polygon, ReferenceMode.Index);
// And specify different material index for each plane
mat.Indices.AddRange(new int[] { 0, 1, 2, 3, 4, 5 });
// Now split it into 6 sub meshes, we specified 6 different materials on each plane, each plane will become a sub mesh.
// We used the CloneData policy, each plane will has the same control point information or control point-based vertex element information.
Mesh[] planes = PolygonModifier.SplitMesh(box, SplitMeshPolicy.CloneData);
mat.Indices.Clear();
mat.Indices.AddRange(new int[] { 0, 0, 0, 1, 1, 1 });
// Now split it into 2 sub meshes, first mesh will contains 0/1/2 planes, and second mesh will contains the 3/4/5th planes.
// We used the CompactData policy, each plane will has its own control point information or control point-based vertex element information.
planes = PolygonModifier.SplitMesh(box, SplitMeshPolicy.CompactData);
通过 .NET API 在 Visio 图表中插入和编辑文本
Aspose.3D for .NET 允许软件开发人员使用 .NET 库在 Visio 图表中以不同方式处理 Visio。C# 库包含多种处理形状中文本的功能,例如插入文本形状、在 Visio 图表中自定义文本形状、更新形状的文本、查找并替换形状的文本、对文本应用内置或自定义样式表、对形状的每个文本值应用不同样式、从 Visio 图表页面提取纯文本等。
如何通过 .NET API 在 3D 文件中设置目标摄像机?
// Initialize scene object
Scene scene = new Scene();
// Get a child node object
Node cameraNode = scene.RootNode.CreateChildNode("camera", new Camera());
// Set camera node translation
cameraNode.Transform.Translation = new Vector3(100, 20, 0);
cameraNode.GetEntity().Target = scene.RootNode.CreateChildNode("target");
var output = RunExamples.GetOutputFilePath("camera-test.3ds");
scene.Save(output, FileFormat.Discreet3DS);
