HTML
JPG
PDF
XML
USD
USD
通過 C# 生成點雲到 USD
構建您自己的 .NET 應用程序以使用服務器端 API 為 USD 文件生成點雲。
如何使用 C# 將點雲生成到 USD 文件
為了生成點雲到 USD 文件,我們將使用
API 是一個功能豐富、功能強大且易於使用的 API C# 平台,可與生成點雲一起使用。打開
包管理器,搜索 Aspose.3D 並安裝。您也可以從包管理器控制台使用以下命令。
包管理器控制台命令
PM> Install-Package Aspose.3D
通過 C# 生成點雲到 USD 的步驟
Aspose.3D 使開發人員只需幾行代碼即可輕鬆地為 USD 文件生成點雲。
- 通過 Scene 類的構造函數加載 USD 文件- 獲取 Aspose.3D 的點雲對象- 通過 EvaluateGlobalTransform 方法創建一個變換對象- 使用 Merge 方法生成點雲- 使用對象調用 Scene.Save 方法
系統要求
Aspose.3D for .NET 在所有主要操作系統上都受支持。只需確保您具有以下先決條件。
- Microsoft Windows 或具有 .NET Framework、.NET Core、Mono 的兼容操作系統- Microsoft Visual Studio 等開發環境- Aspose.3D for .NET 在您的項目中引用
將點雲生成到 USD 的 C# 代碼
//需要生成點雲的源文件
string file = "template.usd";
// 創建一個場景實例
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#,還可以生成許多其他文件格式的點雲,包括。