FBX 转 OBJ

FBX 文件是一种用于交换 3D 几何图形和动画数据的格式。FBX 文件用于电影、游戏和增强现实和虚拟现实 (AR/VR) 开发。此外,为了打开、编辑和将 FBX 文件导出为高保真 2D 和 3D 文件,我们需要一些第三方软件,如 Autodesk FBX Review 等。而 OBJ 是一种更简单的格式,只保留几何图形(顶点、法线等),通常用于原始多边形数据和一些简单材质。因此,我们可能需要将 FBX 文件渲染为 OBJ 格式。在本文中,我们将学习如何使用 REST API 以编程方式将 FBX 文件转换为 OBJ 文件的步骤。

3D 文件处理 API

为了以编程方式创建和处理 3D 模型、对象和实体(包括盒子、圆柱体、球体、圆环和平面),我们创建了一个名为 Aspose.3D Cloud 的基于 REST 的 API。执行所有操作,如变换和平移、缩放、参数化建模、3D 对象的旋转,甚至无需安装任何软件即可使用三角网格。由于它基于 REST 架构,因此 API 可用于桌面、Web、移动和混合应用程序。

在本文中,我们将讨论使用 C# .NET 代码片段将 FBX 文件转换为 OBJ 格式,因此我们需要关注 Aspose.3D Cloud SDK for .NET。SDK 是 REST 的包装器,因此您可以在自己喜欢的 IDE 中获得 3D 文件处理的所有功能。

安装

使用 SDK 的第一步是安装。Cloud SDK 可通过 NuGetGitHub 下载。因此,为了从 NuGet 安装 SDK,请考虑在终端中执行以下命令。

nuget install Aspose.3D-Cloud

NuGet 包管理器

您还可以考虑在 Visual Studio 中的包管理器控制台中执行以下命令来在您的项目中获取和引用 Aspose.3D 程序集。

PM> Install-Package Aspose.3D-Cloud

Visual Studio

另一种方法是直接在 Visual Studio 解决方案中安装:

  1. 打开解决方案资源管理器。
  2. 展开项目并右键单击解决方案中的“包”文件夹。
  3. 选择管理 NuGet 包… 选项
  4. 单击“浏览”选项卡并搜索“Aspose.3D-Cloud”
  5. 在搜索结果中单击 Aspose.3D-Cloud 包
  6. 在右侧选项卡中选择适当的版本,然后单击“安装”按钮。
Aspose.3D-Cloud NuGet

图 1:- Aspose.3D Cloud 作为 Visual Studio 中的 NuGet 包。

云仪表板

在 Aspose,数据的机密性、完整性和可用性至关重要。因此,只有授权人员才能访问云 API 以及存储在云存储中的文件。下一个重要步骤是通过 Aspose.Cloud 仪表板 创建免费订阅帐户。订阅是免费的,不需要信用卡或付款详细信息。在免费订阅帐户下,您最多可以执行 150 个免费文档处理请求。

现在使用您的 GitHub 或 Google 帐户,只需注册即可。否则,单击 创建新帐户 按钮并提供所需信息。现在使用凭据登录仪表板并从仪表板展开应用程序部分,然后向下滚动到客户端凭据部分以查看客户端 ID 和客户端密钥详细信息。

客户端凭证

图片 2:- Aspose.Cloud 仪表板上的客户端凭证。

使用 C# 将 FBX 转换为 OBJ

请按照下面指定的步骤使用 C# .NET 代码片段将 FBX 格式转换为 OBJ 格式。

  • 首先,我们需要创建 ThreeDCloudApi 类的实例,并传递客户端 ID 和客户端密钥作为参数。
  • 其次,将输入的 FBX 文件从本地系统加载到 FileStream 对象中。
  • 现在使用 ThreeDCloudApi 类的 UploadFile(…) 方法将文件上传到云存储。
  • 下一步是调用 PostConvertByFormatWithHttpInfo(…) 方法,该方法以输入文件名、输出格式和结果文件名作为参数。
  • 最后在控制台打印成功信息,此时输出将保存在云存储中。
// 从 https://dashboard.aspose.cloud/ 获取 ClientID
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";

// 输入 FBX 文件的名称
String inputFileName = "Wolf-Blender-2.82a.fbx";
// 生成的文件格式
String newFormat = "wavefrontobj";
// 输出文件的名称
String newFileName = "resultant.obj";

// 创建 ThreeDCloud API 实例
ThreeDCloudApi threeDCloudApi = new ThreeDCloudApi("client_credentials", clientID, clientSecret);

try
{
    // 从本地驱动器加载输入 FBX
    using (var inputStream = new FileStream("C:\\Users\\nayyer\\Downloads\\" + inputFileName, FileMode.Open))
    {
        // 将文件上传至云存储
        threeDCloudApi.UploadFile(inputFileName, inputStream);
        
        // 启动文件转换操作
        var response = threeDCloudApi.PostConvertByFormatWithHttpInfo(inputFileName, newFormat, newFileName, null, isOverwrite: true, null);
        
        // 如果转换成功,则打印成功消息
        if (response != null && response.Equals("OK"))
        {
            Console.WriteLine("Successfully converted FBX to OBJ !");
            Console.ReadKey();
        }
    }
}catch (Exception ex)
{
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}

供您参考,上面示例中使用的示例文件已通过 Wolf-Blender-2.82a.fbxresultant.obj 上传。

使用 cURL 命令将 FBX 转换为 OBJ

Cloud API 的 REST 架构使您可以通过 cURL 命令访问它们,因此我们也可以通过 cURL 命令访问 Aspose.3D Cloud。同时,我们的 API 仅供授权人员访问,因此我们需要首先根据我们个性化的客户端凭据生成 JWT 访问令牌。请执行以下命令生成 JWT 访问令牌。

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=4db2f826-bf9c-42e7-8b2a-8cbca2d15553&client_secret=d757548a9f2558c39c2feebdf85b4c44" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

现在我们需要在执行以下命令时将文件上传到云存储。

curl -X PUT "https://api.aspose.cloud/v3.0/3d/storage/file/Esso.3ds" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-H  "Content-Type: multipart/form-data" \
-d {"File":{c:\Users\nayyer\Esso.3ds}} -v

生成 JWT 访问令牌后,请执行以下命令将 FBX 文件转换为 OBJ 格式。以下是 PostConvertByFormat API 接受的参数的详细信息

  • name——源文件的名称。
  • newformat - 新文件的格式。
  • newfilename - 新文件的名称。
  • 文件夹(可选)——源文件的文件夹。
  • IsOverwrite(可选)- 是否覆盖源文件?(默认值为 false)
  • 存储(可选) - 存储类型。
curl -X POST "https://api.aspose.cloud/v3.0/3d/saveas/newformat?name=Wolf-Blender-2.82a.fbx&newformat=wavefrontobj&newfilename=Converted.obj&IsOverwrite=true" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-v

请求 URL

https://api.aspose.cloud/v3.0/3d/saveas/newformat?name=Esso.3ds&newformat=FBX&newfilename=Iphone.fbx&IsOverwrite=false

结论

在本文中,我们讨论了如何使用 C# .NET 代码片段和 cURL 命令将 FBX 文件转换为 OBJ 格式的步骤。此外,我们的 Cloud SDK 是在开源许可模式下开发的,因此可以从 GitHub 下载完整的源代码。

回顾一下,我们在下面列出了 Cloud API 当前支持的 3D 格式

增材制造格式 AMF、3D Studio 3DS、AVEVA RVM、Google Draco DRC、Collada DAE、AutoCAD DXF、Autodesk FBX、Wavefront OBJ、3D PDF、多边形文件格式 PLY、标准三角语言 STL、Universal3D U3D、GL 传输格式 GLTF

我们鼓励您尝试使用我们的 API,如果您遇到任何问题或有任何相关疑问,请随时通过 [免费支持论坛] 与我们联系。]15

相关文章

我们还建议您访问以下链接,详细了解我们屡获殊荣的 API 的功能