HTML JPG PDF XML GLB
Aspose.3D  for .NET
GLB

通过 C# 生成点云到 GLB

构建您自己的 .NET 应用程序以使用服务器端 API 为 GLB 文件生成点云。

如何使用 C# 将点云生成到 GLB 文件

为了生成点云到 GLB 文件,我们将使用

Aspose.3D for .NET

API 是一个功能丰富、功能强大且易于使用的 API C# 平台,可与生成点云一起使用。打开

NuGet

包管理器,搜索 Aspose.3D 并安装。您也可以从包管理器控制台使用以下命令。

包管理器控制台命令


PM> Install-Package Aspose.3D

通过 C# 生成点云到 GLB 的步骤

Aspose.3D 使开发人员只需几行代码即可轻松地为 GLB 文件生成点云。

  • 通过 Scene 类的构造函数加载 GLB 文件- 获取 Aspose.3D 的点云对象- 通过 EvaluateGlobalTransform 方法创建一个变换对象- 使用 Merge 方法生成点云- 使用对象调用 Scene.Save 方法

系统要求

Aspose.3D for .NET 在所有主要操作系统上都受支持。只需确保您具有以下先决条件。

  • Microsoft Windows 或具有 .NET Framework、.NET Core、Mono 的兼容操作系统- Microsoft Visual Studio 等开发环境- Aspose.3D for .NET 在您的项目中引用
 

将点云生成到 GLB 的 C# 代码


//需要生成点云的源文件
string file = "template.glb";

// 创建一个场景实例
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 和更多格式。

    为 GLB 生成点云的免费应用程序

    查看我们的现场演示 点云3DS 具有以下好处。

      无需下载或设置任何东西
      无需编写或编译代码
      只需上传 GLB 文件并点击“生成”按钮
      如果需要,从链接下载 GLB 文件

    GLB 什么是GLB文件格式

    GLB 是以 GL 传输格式 (glTF) 保存的 3D 模型的二进制文件格式表示。有关 3D 模型的信息,例如二进制格式的节点层次结构、相机、材质、动画和网格。此二进制格式将 glTF 资产(JSON、.bin 和图像)存储在二进制 blob 中。它还避免了在 glTF 的情况下发生的文件大小增加的问题。 GLB 文件格式带来紧凑的文件大小、快速加载、完整的 3D 场景表示以及进一步开发的可扩展性。该格式使用 model/gltf-binary 作为 MIME 类型。

    阅读更多

    其他支持的应用程序来生成点云到格式

    使用 C#,还可以生成许多其他文件格式的点云,包括。

    3MF (3D 制造格式)
    AMF (增材制造形式)
    ASE (二维动画文件)
    DAE (数字资产交易所)
    DXF (绘图交换格式)
    DRC (Google Draco)
    FBX (3D 格式)
    3DS (3D Studio 网格文件格式)
    GLTF (GL 传输格式)
    JT (木星镶嵌文件)
    OBJ (3D 文件格式)
    PLY (多边形文件格式)
    PDF (3D PDF)
    RVM (AVEVA 工厂设计模型)
    STL (可互换的 3D 表面几何形状)
    U3D (Universal 3D)
    VRML (虚拟现实建模语言)
    X (DirectX 模型图像)
    USD (通用场景描述)
    USDZ (通用场景描述 Zip 存档)