HTML
JPG
PDF
XML
USDZ
USDZ
通过 C# 生成点云到 USDZ
构建您自己的 .NET 应用程序以使用服务器端 API 为 USDZ 文件生成点云。
如何使用 C# 将点云生成到 USDZ 文件
为了生成点云到 USDZ 文件,我们将使用
API 是一个功能丰富、功能强大且易于使用的 API C# 平台,可与生成点云一起使用。打开
包管理器,搜索 Aspose.3D 并安装。您也可以从包管理器控制台使用以下命令。
包管理器控制台命令
PM> Install-Package Aspose.3D
通过 C# 生成点云到 USDZ 的步骤
Aspose.3D 使开发人员只需几行代码即可轻松地为 USDZ 文件生成点云。
- 通过 Scene 类的构造函数加载 USDZ 文件- 获取 Aspose.3D 的点云对象- 通过 EvaluateGlobalTransform 方法创建一个变换对象- 使用 Merge 方法生成点云- 使用对象调用 Scene.Save 方法
系统要求
Aspose.3D for .NET 在所有主要操作系统上都受支持。只需确保您具有以下先决条件。
- Microsoft Windows 或具有 .NET Framework、.NET Core、Mono 的兼容操作系统- Microsoft Visual Studio 等开发环境- Aspose.3D for .NET 在您的项目中引用
将点云生成到 USDZ 的 C# 代码
//需要生成点云的源文件
string file = "template.usdz";
// 创建一个场景实例
Scene scene = new Scene(file);
//获取 Aspose.3D 的点云对象并生成点云
var pc = new PointCloud();
scene.RootNode.Accept((Node n) =>
{
if (n.Entities.Count > 0)
{
var transform = n.EvaluateGlobalTransform(true);
foreach (var entity in n.Entities)
{
if (entity is Geometry g)
{
Merge(pc, g, transform);
}
else if (entity is IMeshConvertible mc)
{
var mesh = mc.ToMesh();
Merge(pc, mesh, transform);
}
}
}
return true;
});
//生成点云的合并方法
private void Merge(PointCloud pc, Geometry g, Matrix4 transform)
{
var tmp = PointCloud.FromGeometry(g, 10);
for (int i = 0; i < tmp.ControlPoints.Count; i++)
{
var pt = transform * tmp.ControlPoints[i];
pc.ControlPoints.Add(pt);
}
}
// 创建一个新场景的实例
var newScene = new Scene(pc);
//保存时需要创建保存格式的SaveOptions对象
string output=System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".ply";
PlySaveOptions ply = new PlySaveOptions();
ply.PointCloud = true;
newScene.Save(output,ply);
关于Aspose.3D for .NET API
Aspose.3D 是用于加载、修改和转换 3D 文件的 CAD 和游戏软件 API。 API 是独立的,不需要任何 3D 建模或渲染软件。可以轻松地将 API 用于 Discreet3DS、WavefrontOBJ、STL(ASCII,二进制)、Universal3D、FBX(ASCII,二进制)、Collada、glTF、PLY、 GLB、DirectX 和更多格式。其他支持的应用程序来生成点云到格式
使用 C#,还可以生成许多其他文件格式的点云,包括。