使用 SideFX Houdini,將點雲轉換為用於 Dynamics 365 Guides 和使用 Power Apps 所建立應用程式內含混合實境元件的最佳化 3D 物件

本教學課程提供下列工作的逐步指示。

  • 轉換點雲成 3D 物件。

  • 減少 3D 物件的多邊形數目來進行最佳化,使其符合 Dynamics 365 混合實境應用程式的效能目標的特定效能要求。

  • 將經過最佳化的 3D 物件匯出為 .glb 檔案,以供用於 Dynamics 365 Guides 和使用 Power Apps 所建立應用程式內含混合實境元件

  • 建立處理管道範本,便於日後快速最佳化處理點雲。

本教學課程建立僅供資訊參考之用,目的在於示範 SideFX Houdini 如何搭配 Microsoft Dynamics 365 Guides 和 Power Apps 運作。 您對第三方應用程式的使用受您和第三方之間的條款約束。 Microsoft Corporation 並非 Blender 的關係組織或合作夥伴,並且不背書或贊助 SideFX 或其任何產品。 您還可以使用其他內容建立應用程式來準備 3D 物件

什麼是 Houdini?

Houdini 是一種用來建立 3D 程序內容的工具。 它會使用非破壞性的節點型工具系統,設計程序管道和 3D 內容。

設定您的環境

若要設定您的環境,您必須完成下列這些工作:

  • 安裝 SideFX Labs 擴充功能。

  • 設定用於攝影測量的 AliceVision。

安裝 SideFX Labs 擴充功能

SideFX Labs 是一種工具測試平台,可以協助您更快使用 Houdini 並開始運行。 這組免費工具集合包括可將點雲轉換為最佳化 3D 物件的工具。 若要使用 SideFX Labs,您必須使用 Houdini 18 或更高版本。

SideFX 可提供協助您安裝這些工具的教學課程影片

注意

您必須先安裝 Houdini,才能安裝 SideFX Labs。 深入了解如何安裝 Houdini.

  1. 開啟 Houdini。

  2. 若要安裝 SideFX Labs,請在 Houdini 視窗頂端選取加號 加號。,然後選取貨架,接著選取 SideFX Labs 核取方塊。

    SideFX Labs 核取方塊。

  3. 在視窗頂端附近出現的工具列上,選取 Update Toolset,即可開啟安裝程式。

    更新工具集按鈕。

  4. 選取 Update,即可安裝工具。

    更新按鈕。

如果安裝成功,工具列上會出現更多工具。 接著您便可以繼續使用本教學課程。

設定用於攝影測量的 AliceVision

AliceVision 是 Mikros Image 開發的攝影測量電腦視覺架構。 它提供 3D 重建和相機追踪演算法。 深入了解關於 AliceVisionAliceVision 外掛程式

如需關於如何為 Houdini 安裝和設定 AliceVision 外掛程式的資訊,請參閱 SideFX 教學課程

將點雲匯入 Houdini

Houdini 可以匯入 PLY 檔案格式的點雲檔案。 如果檔案為 PTS 檔案格式,則您可以手動將其轉換為 PLY 格式。

將 .pts 檔案轉換為 .ply 檔案

  1. 在您選擇的檔案編輯器中開啟 .pts 檔案,並加入下列標題。

    ************************
    ply
    format ascii 1.0
    element vertex 534993
    property float x
    property float y
    property float z
    property uchar intensity
    property uchar red
    property uchar green
    property uchar blue
    end_header
    ************************
    
  2. 在標題中元素頂點旁邊,將 534993 值更換成 .pts 檔案頂端一開始顯示的值 (現在會因應標題變化)。

    .pts 檔案頂端的值。

    此值就是點雲中的總點數。

  3. 移除在標題後方的原始值。 下表顯示檔案在實施先前變更之前與之後的並排比較。 元素頂點值會以紅色字體強調顯示。

    .pts 檔案頂端 .ply 檔案頂端
    .pts 檔案頂端的值 .ply 檔案標題中的值
  4. 儲存檔案,並使用 .ply 檔案副檔名。

匯入 .ply 檔案

  1. 開啟 Houdini。 這時一個新場景將自動建立。 在此程序中,您將建置一個可將點雲處理為 3D 物件的節點鏈。 這些節點將建立在 Houdini 視窗的右下角處。

    節點窗格。

  2. 以滑鼠右鍵按一下窗格右下角,即可開啟 TAB Menu。 (或者,按 Tab 鍵)。

  3. TAB Menu 中,選取 Import > 檔案,然後在 Geometry 窗格中點選滑鼠,再放置節點。

    檔案命令。

  4. 按兩下 file1 節點的中間處 (或按 I),向下切入到節點的檔案選擇部分,然後選取 File Chooser 按鈕,接著選取要匯入的檔案。

    檔案選擇器按鈕。

  5. 在顯示的檔案瀏覽器中,瀏覽到您要匯入的 .ply 點雲檔案位置,然後選取該檔案,接著選取 Accept

    接受按鈕。

    點雲隨即顯示為視窗主要部分。 如果未看到點雲,請嘗試使用滑鼠滾輪進行縮小,直到可以看到整個點雲。

    點雲。

準備點雲

重新定向點雲

有時第一次匯入的點雲定向是錯誤的。 您可以在節點結構樹中加入轉換節點,固定此方向。

  1. 以滑鼠右鍵按一下 Geometry 窗格後開啟 TAB Menu,然後選取 Manipulate> Transform,即可加入轉換節點。

    轉換命令。

  2. file1 節點底部的點,拖到 transform1 節點的頂部點位置。 這樣一來,您就可以將 file1 節點的輸出連接到 transform1 節點的輸入。 接著,點選 transform1 節點右側。 transform1 節點右側隨即變為藍色,且節點在視窗主要部分變為使用中狀態,讓您可在模型重新定向後看得到此模型。

    轉換節點。

    提示

    若要在 Houdini 的特定程序階段中查看模型,請按一下適當節點的右側。 如果您必須查看先前狀態的 3D 物件,並編輯在該狀態下發生的更改,這項功能就能派上用場。

  3. 若要修正模型的旋轉,請在節點窗格上方,從選項窗格的旋轉列新增數值。 通常可將 x 值設為 270,將模型旋轉到正確的位置。 但是,如果這個數值沒有作用,請嘗試其他值。

    旋轉值。

  4. 若要將點雲放在原點上方,請在轉換節點之後新增一個軸對齊節點。 若要放置節點,請將滑鼠游標放在幾何窗格上,接著按下 Tab 鍵以開啟 TAB 選單,然後選取 Labs>Geo>Labs Axis Align

    Labs Axis Align 命令。

  5. 進行拖曳,將 transform1 節點底部的輸出點連接到 axisalign1 節點頂部的輸入點。 保留原本將點雲放在原點頂端 (對其而言的理想位置) 的預設值。

    節點已連接。

清理點雲以移除偏離點

如果點雲中有需要移除的偏離點,您可以選取並刪除個別點或點組。

  1. 變更幾何選取方法為點數,而 Select 工具為 Lasso Pickin

    注意

    您可以依個人偏好使用其他不同的方法。

    計分方法和 Lasso Picking 工具已選取。

  2. 選取要刪除的點。

    要刪除的點已選取。

  3. 按下 Delete 鍵。 新的 blast1 節點隨即出現。 此節點頂部的輸入點隨即連接到您正在使用之最後一個節點底部的輸出點。

    Blast 節點。

  4. 繼續移除點,直到您對結果感到滿意為止。 每次刪除都會新增一個全新、供您隨時檢視或移除的 Blast 節點。

    多個 Blast 節點。

將點雲轉換為網格

glTF 和即時轉譯應用程式,都會要求物件呈現為三角多邊形表面。 您可以使用顆粒流體表面命令,將各點依多邊形幾何方式連接到邏輯表面。

  1. 點選幾何窗格,並開啟 TAB 選單,然後選取流體>顆粒流體表面。 然後選取節點,並將其新增到幾何窗格。

    顆粒流體表面命令。

  2. 進行拖曳,將 transform1 節點底部的輸出點連接到 particlefluidsurface1 節點左上角的輸入點。 接著,點選 pariclefluidsurface1 節點右側後,即可在視窗主要部分中啟動此節點。

    連接的節點螢幕擷取畫面。

    在視窗主要部分中,點雲會轉譯為網格。 表面處理索引標籤會在幾何窗格上方的右上角窗格中處於選取狀態。

    表面處理索引標籤。

  3. 如果色彩資料與點雲中的點有關聯,則您可以在轉換屬性欄位中的數值末端加上字母 Cd。 此色彩將顯示在網格上。

    Cd 屬性。

  4. 如果網格中有孔洞 (如下圖所示),請從右上角窗格中嘗試調整顆粒分離體素比例滑桿來解決此問題。

    顆粒分離和體素比例滑桿。

  5. 若要準備削減網格 (整個過程的下一步),請在輸出下方,將轉換至欄位的數值從表面多邊形湯變更成表面多邊形。 透過這種方式,您就可以重新製作網格,以及進行削減。

    轉換成欄位。

  6. 以右鍵按一下幾何窗格,開啟 TAB 選單,然後選取多邊形>重做網格。 重做網格節點隨即新增,並可用於將網格轉換為三角形。 這樣,您可以將 3D 物件削減至符合效能需求的多邊形數目。

    重做網格命令。

  7. 進行拖曳,將 particlefluidsurface1 節點底部的輸出點連接到 remesh 節點左上角的輸入點。 點選 remesh 節點的中間處,即可在幾何窗格上方的窗格處啟動此節點。 接著,點選此重做網格節點右側後,即可在視窗主要部分中啟動此模型。 現在,您可以編輯重做網格的屬性,而視窗主要部分中的模型將會反映這些編輯。

    連接的節點。

  8. 試用元素大小調整下的選項,取得您需要的效果。 處理邊緣長度欄位時,您可以保留預設值 (統一),也可以選取適應性來調整相對密度滑桿 (和其他選項),最後產生您所需要的網格。

    元素大小調整選項。

削減 3D 物件,協助改善效能

為了達成應用程式的特定目標,您的 3D 物件可能必須進行削減。 削減是重新計算模型的表面多邊形,並使用數目更少的多邊形來建立相似形狀的過程。 儘管此過程會降低視覺逼真度,但效能卻藉此提高。 下面表格示範了 HoloLens 上所使用高品質模型,以及用於高場景複雜度的低品質模型的並排比較。

高多邊形 3D 物件 低多邊形 3D 物件
高多邊形模型 低多邊形模型
500,000 個三角形 8,000 個三角形

削減模型

  1. 幾何窗格中,按 Tab 鍵來開啟 TAB 選單,接著選取多邊形>PolyReduce,即可在幾何窗格中放入 PolyReduce 節點。

    PolyReduce 命令。

  2. 進行拖曳,將 remesh 節點底部的輸出點連接到 polyreduce1 節點左上角的輸入點。 點選 polyreduce1 節點的中間處,然後在節點右側點選,即可在視窗主要部分中啟動此節點。

  3. 縮減數量目標欄位中,選取輸出多邊形數目,然後使用要保留的數目滑桿,根據您的效能需求來調整多邊形數目,同時維持可接受的視覺逼真度。

    減少數量選項。

點雲現在已轉換為最佳化的 3D 網格。 在下一步中,您將在 3D 物件上製作高解析度紋理,以恢復削減之前的一些視覺逼真度。

將高解析度紋理製作到低多邊形網格上

減少網格中多邊形數目的缺點之一,就是可能失去許多細節部分。 若要還原部分細節,您可以擷取細節,並以低多邊形模型頂層紋理方式進行套用。 在此稱為紋理製作的過程中,您可以拍下高多邊形模型中的所有表面的相片,然後將其連接到可覆蓋在低多邊形模型頂部的「被套」中。 這樣一來,不僅可以讓您達到低多邊形模型的效能,而且保留了高多邊形模型的一些更精細的細節。

紋理座標 (也稱為 UV) 是一對儲存為模型幾何中的數字 (UV)。 這些數字可呈現 2D 影像映射到 3D 表面的方式,並可讓表面性質如影像方式進行定義。 影像可以是簡單的貼花或複雜的材質成分,例如粗糙度和金屬性。 您可以手動產生網格的 UV 位置,也可以半自動或自動完成該過程。 AutoUV 表面操作器是 Houdini 所提供,可用來產生 UV 的一種工具。 在建立 UV 時,它會使用一些自動方法。

製作紋理

  1. 以右鍵按一下幾何窗格,開啟 TAB 選單,然後選取 Labs>UV>Labs Auto UV,將 AutoUV 節點新增至場景中。

    Labs AutoUV 命令。

  2. 方法下方,將 Method 欄位的數值變更成 UV 展開

    UV 展開方法已選取。

  3. 進行拖曳,將 polyreduce1 節點底部的輸出點連接到 autouv1 節點頂部的輸入點。

    拖曳以建立連接的節點。

  4. 若要並排檢視物件前後情況,請選取檢視區配置按鈕,然後選取兩個檢視圖並排選項

    兩個視圖並排選項。

  5. 在視窗主要部分的下拉式選單中,選取設定檢視 > UV 檢視區

    UV 檢視區命令。

    展開的 UV 隨即出現在左側,而 3D 物件出現在右側。

    展開的 UV 和 3D 物件。

  6. 幾何窗格中,選取 Labs>Output>Labs Maps Baker,以新增 maps_baker1 節點。

    Labs Maps 製作命令。

  7. 進行拖曳,將 autouv1 節點底部的輸出點連接到 maps_baker1 節點左上角的輸入點。 (左上角的點是低解析度輸入節點。)

    將 autouv1 節點連接到 maps_baker1 節點。

  8. 進行拖曳,將 particlefluidsurface1 節點底部的輸出點連接到 maps_baker 1 節點右上角的輸入點。 (右上角的點是高解析度輸入節點。)

    將 particlefluidsurface1 節點連接到 maps_baker 1 節點。

  9. 選取 maps_baker1 節點,然後在製作下方,將預覽管道的值變更為擴散。 在製作選項下方,將擴散地圖欄位設為擴散

    製作選項。

    提示

    若要將專案儲存於特定資料夾中,請在輸出目錄欄位旁選擇檔案選擇棄按鈕,如上圖所示。 製作紋理時,.png 紋理檔案將儲存到先前儲存專案之根資料夾中的已建轉譯資料夾。 將專案儲存至其本身資料夾後,製作的紋理就可輕鬆找出。

  10. 選取 maps_baker1 節點,接著在選項窗格中選取製作

    製作按鈕螢幕擷取畫面。

  11. 以滑鼠右鍵按一下幾何窗格並開啟 TAB 選單,然後選取管理員>材質網路,將 matnet1 節點加入場景中。

    材質網路命令。

  12. 按兩下 matnet1 節點,開啟 VEX Builder 窗格。

    Matnet 節點。

  13. 以右鍵按一下 VEX Builder 窗格,然後選取著色器>原則性著色器,加入原則性著色器材質。

    原則性著色器命令。

  14. 在選項窗格的表面索引標籤中,使用滑桿將粗糙度欄位值變更為 0.6,而金屬性欄位值變更為 0.1。 (您可以依個人需求來設定這些欄位的數值,但是我們發現,這些值與預設值一起使用時可說是不錯的起點。)

    粗糙度和金屬性欄位。

  15. 紋理索引標籤的基本色彩下方,選取使用紋理核取方塊。 然後選取檔案選擇器按鈕,然後選取您先前存放在轉譯器資料夾中的 *_color.png 紋理檔案。 原則性著色器現在已可開始使用。

    注意

    您可依需要更進一步修改材質。 就本教學課程而言,使用這項設定就足夠了。

    使用紋理核取方塊及選取的紋理。

  16. VEX Builder 窗格中,選取返回 (向左箭頭) 按鈕,便可返回幾何窗格。

    返回按鈕。

  17. 選取材質>材質,即可將材質節點放入幾何窗格。

    材質命令。

  18. 進行拖曳,將 autouv1 節點底部的輸出點連接到 material1 節點頂部的輸入點。

    將 autouv1 節點連接到 material1 節點。

  19. 選取 material1 節點,然後選取操作員選擇器按鈕。 然後,在選擇操作員對話方塊中,選取 file1>matnet1>principledshader1,以選擇之前建立的原則性著色器。

    選擇操作員按鈕及選取的材質檔案。

  20. 點選節點的右側,在視窗主要部分中啟動此節點。

紋理隨即轉譯於低多邊形 3D 物件的頂端。 如果結果看似可以接受,請繼續下一步。

在低多邊形模型上轉譯的紋理。

將模型匯出為 .glb 檔案

在這個步驟中,您要將模型匯出成 .glb 檔案,以便其可以搭配 Dynamics 365 Guides 和 Power Apps 使用。

  1. 以右鍵按一下幾何窗格,開啟 TAB 選單,然後選取匯出>ROP GLTF Output

    ROP GLTF 輸出命令。

  2. 進行拖曳,將 material1 節點底部的輸出點連接到 ropgltf1 節點頂部的輸入點。

    將 material1 節點連接到 rop_gltf1 節點。

  3. 在上方窗格中,將匯出類型欄位值變更為 glb

    在匯出類型欄位中選取的 glb。

  4. 輸出檔案欄位旁邊,選取檔案選擇器按鈕,然後為 .glb 檔案輸入名稱和儲存目的地。 確定在檔名結尾加上 .glb。 當完成時,選取接受

    檔案選擇器按鈕和檔案欄位。

  5. 選取轉譯至磁碟,即可完成匯出及建立 .glb 檔案。

    轉譯至磁碟按鈕。

建立範本,以便將您的設定重複用於其他的點雲

若要節省時間和精力,請建立範本。 這樣一來,您為點雲建立的設定就可以用於其他點雲。 儘管您仍然必須手動選取製作,並可能需要調整一些數值,大多數處理過程仍可以採用自動化處理。

建立範本

  1. 將目前正在使用的幾何更換成預設幾何。 這個步驟可讓範本檔案更輕巧,載入時就能夠快速載入。

    1. 幾何窗格中,點選檔案節點的中間處,以切換到上方窗格的檔案選單。

    2. 幾何檔案欄位的數值變更成 default.bgeo,然後選取重新載入幾何

    3. 請注意,幾何此時將重新描繪,成為通用立方體。

    4. 將檔名更改為類似 Template 的通用檔名。

    重繪的幾何。

  2. 選取檔案>儲存,然後輸入您方便記住的名稱,例如 PrepTemplate

    儲存命令。

  3. 關閉 Houdini。

使用範本

  1. 開啟 Houdini,選取檔案>打開,然後選取您剛建立的範本。

    開啟命令。

  2. 幾何窗格中,點選檔案節點的中間處,以切換到上方窗格的檔案選單。 然後選取幾何檔案欄位旁邊的檔案選擇器按鈕,以選取 .ply 點雲端檔案。

    選取的節點和檔案選擇器按鈕。

  3. 選取重新載入幾何,即可將點雲載入到場景中。

    重新載入幾何按鈕。

  4. 前往 maps_baker1 節點,然後選取製作,為您的 3D 物件製作新的紋理。

    製作按鈕。

  5. 點選 material1 節點的右側,即可檢視所製作的模型。

    材質節點的右側。

  6. 請執行以下其中一個步驟:

    • 如果您對 3D 物件感到滿意,請前往 rop_gltfB 節點,接著選取轉譯至磁碟,即可匯出您的 3D 物件。

      轉譯至磁碟命令。

    • 如果您不滿意 3D 物件外觀,請調整 particlefluidsurface1remeshpolyreduce1 等節點的設定。 當模型看似可接受時,再次製作紋理,然後匯出 3D 物件。

使用 Dynamics 365 Guides 或 Power Apps 檢視 3D 物件

準備好 3D 物件之後,請使用下列連結,深入了解如何在 Dynamics 365 Guides 或 Power Apps 中使用這個模型:

其他資訊

為了提供有關如何使用 Houdini 軟體的清楚說明,本教學課程特從 Houdini 軟體程式取用一些螢幕擷取畫面。 深入了解 SideFX Houdini

因使用 Houdini 或依賴這些說明而引起之任何形式的損害,Microsoft Corporation 概不負責,並於此明確聲明不予承擔任何責任。 這份文件的設計目的僅是為我們的客戶提供一般資訊,完全不考慮任何個別商務計劃或規格。

這份文件當中的商標名稱和影像使用絕對僅供提供資訊和描述之用途,且 Microsoft Corporation 不為其使用進行任何商業聲明,亦不提示任何贊助或背書關係。