Node.js 中的 GLB 轉 FBX

GLB 文件是文字文件,記錄地球儀中使用了哪些紋理、圖像和其他文件,以及這些文件的儲存位置。 GLB 格式針對運行時的下載速度和載入時間進行了最佳化,這使得它們更易於在行動和基於網路的 3D 建模程式中使用。除此之外,glTF 被開發為一種高效、可擴展、可互通的格式,用於傳輸和載入 3D 內容。此格式的目標包括緊湊的檔案大小、快速載入、完整的 3D 場景表示、運行時獨立性和可擴展性以配合進一步的開發。

類似地,FBX 格式允許創作者彼此共享 3D 模型,因為它高效並且將模型儲存為二進位資料。由於這些功能,這兩種格式都非常流行,我們可能需要相互轉換。在本文中,我們將進一步詳細討論以下主題

3D檔案處理API

在我們的 Cloud REST API 的幫助下,3D 檔案的處理變得非常方便。因此現在您可以使用 Aspose.3D Cloud 執行所有 3D 檔案處理和轉換操作。為了方便我們的客戶,我們圍繞 Aspose.3D 雲端建立了一個 Node.js 包裝器,以便所有功能都可以在您的 Node.js 專案中使用。

安裝和配置

為了使用 Cloud SDK,第一步是從 NPMGitHub 安裝它。但是,透過 npm 安裝是最簡單的。請執行以下命令進行安裝

npm install aspose3dcloud --save

請注意,Aspose.3D Cloud SDK for Node.js 需要 Node.js 4.8.7 或更高版本。

安裝完成後,下一步主要是透過存取 Aspose.Cloud 儀表板 建立帳戶。您需要建立帳戶的原因是我們的 API 僅供授權人員存取。因此,如果您有 GitHub 或 Google 帳戶,只需註冊即可。否則,請點擊建立新帳戶按鈕並提供所需資訊。現在使用憑證登入儀表板並從儀表板展開應用程式部分並向下捲動至用戶端憑證部分以查看用戶端 ID 和用戶端金鑰詳細資訊。

客戶端憑證

Node.js 中的 GLB 到 PLY

為了將 GLB 檔案轉換為 PLY 格式,請按照以下說明操作:

  • 第一步是建立 ThreeDCloudApi 的實例,同時提供客戶端 ID 和客戶端金鑰詳細資訊作為參數。
  • 其次,建立一個postConvertByFormatRequest類別的物件。
  • 使用 postConvertByFormatRequest 類別的 name 屬性定義輸入 GLB 檔名。
  • 為了指定結果格式,請使用 newformat 屬性。
  • 現在,為了定義產生的檔案名,請使用 postConvertByFormatRequest 的 newfilename 屬性。
  • 最後,呼叫 ThreeDCloudApi 的 postConvertByFormat(…) 方法,並將 postConvertByFormatRequest 實例作為參數傳遞,以啟動轉換操作。
const { ThreeDCloudApi, postConvertByFormatRequest } = require("aspose3dcloud");

// 從 https://dashboard.aspose.cloud 取得您的 ClientId 和 ClientSecret(需免費報名)。
const clientId = "718e4235-8866-4ebe-bff4-f5a14a4b6466";
const secret = "388e864b819d8b067a8b1cb625a2ea8e";

// 建立 ThreeD Cloud API 實例
const threeDCloudApi = new ThreeDCloudApi(clientId, secret);

    // 建立 ConvertByFormat 請求對象
    var req = new postConvertByFormatRequest()
    
    // 指定輸入 glb 檔案的名稱
    req.name = "Wolf-Blender-2.82a.glb";
    
    // 結果文件的文件格式
    req.newformat = "ply";

    // 結果文件的名稱
    req.newfilename = "Wolf-Blender-2.82a.ply";

    req.folder = null;

    // 如果文件已存在於雲端儲存中,則覆蓋該文件
    req.isOverwrite = true;
    req.storage = null;

    try {
        // 執行文件轉換操作
    return threeDCloudApi.postConvertByFormat(req)
      .then((result) => {
	    
            // 在控制台上列印成功訊息
            console.log("Successfully converted..");
	});
}
catch (e) {
    console.log("entering catch block");
    console.log(e);
    console.log("leaving catch block");
}

上述範例中使用的範例文件可透過以下連結取得,以供測試

使用 cURL 指令將 GLB 轉換為 FBX

Aspose.3D Cloud 非常神奇,您可以使用單一 cURL 命令將 GLB 或其他格式轉換為任何其他支援的格式,包括 FBX。如上文所述,您可以使用相同的程式碼,透過簡單地更改輸出檔案格式副檔名來執行轉換,API 將完成剩下的工作。但是,在命令列終端存取 API 之前,請注意,我們需要先根據客戶端 ID 和客戶端金鑰詳細資訊產生 JWT 存取令牌,因為只有授權人員才能存取 API。

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=718e4235-8866-4ebe-bff4-f5a14a4b6466&client_secret=388e864b819d8b067a8b1cb625a2ea8e" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

一旦產生了 JWT 令牌,就可以存取 PostConvertByFormat API 來執行 GLBFBX 的轉換。

curl -X POST "https://api.aspose.cloud/v3.0/3d/saveas/newformat?name=Wolf-Blender-2.82a.glb&newformat=fbx&newfilename=ConvertedFile.fbx&IsOverwrite=true" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"

結論

本文解釋了使用 Aspose.3D Cloud API 將流行的 3D 檔案格式轉換為其他支援格式的相關概念。在本文中,我們討論了使用 Node.js 程式碼片段以及 cURL 指令進行檔案轉換的步驟。除了上面討論的格式之外,該 API 還能夠載入和保存其他 3D 檔案格式的輸出,相關詳細資訊可在 支援的文件格式 中找到。

請注意,在免費帳戶訂閱下,您可以執行 150 個文件處理請求,一旦您對 API 感到滿意,您可以考慮購買許可證訂閱,價格低至 0.005 美元/API 呼叫。了解更多詳情,請造訪定價頁面。如果您在使用 API 時遇到任何問題或有任何相關疑問,請隨時透過 免費產品支援論壇 與我們聯絡。

相關文章

我們還建議您訪問以下連結以探索更多功能