在電腦圖形學領域,三角形網格是表示3D幾何物件的主要方式,也是遊戲、影片和虛擬實境介面中最常使用的3D資源表現方法。業界通常使用三角形網格來模擬複雜物體的表面,例如建築物、車輛、動物等。同時,常見的幾何變換、幾何檢測和渲染著色等操作也需要基於三角形網格進行
相較於點雲或體素等其他的3D形狀表示法,三角形網格提供了更連貫的表面表示法:更加可控,更加易於操作,更加緊湊,並且可以直接應用於現代渲染管線中,透過更少的基元獲得更高的視覺品質
#以前有研究人員嘗試使用體素、點雲和神經場等表示方法來產生3D模型,這些表示方法還需要經過後處理轉換成網格,以便在下游應用中使用,例如使用Marching Cubes演算法進行等值面處理
#不幸的是,這種方法會導致網格過於密集,網格劃分過於細緻,經常會出現由過度平滑和等值曲面化引起的凹凸不平的錯誤,就像下圖所示的那樣:
比較之下,3D 建模專業人員建模的3D 網格在表示上更加緊湊,同時以更少的三角形保持了清晰的細節。
一直以來,許多研究者都希望解決自動產生三角形網格的任務,以進一步簡化製作 3D 資產的流程。
在最近的一篇論文中,研究者提出了新的解決方案:MeshGPT,將網格表示直接產生為一組三角形。
論文連結可參考:https://nihalsid.github.io/mesh-gpt/static/MeshGPT.pdf
在Transformer 語言生成模型的啟發下,他們採用了一種直接的序列生成方法,將三角形網格合成為三角形序列
依照文本產生的範式,研究者首先學習了三角形詞彙,三角形被編碼為潛在量化嵌入。為了鼓勵學習到的三角形嵌入保持局部幾何和拓撲特徵,研究者採用了圖卷積編碼器。然後,這些三角形嵌入由 ResNet 解碼器解碼,該解碼器將其處理表示三角形的 token 序列,產生三角形的頂點座標。最終,研究者在所學詞彙的基礎上訓練基於 GPT 的架構,從而自動產生代表網格的三角形序列,並獲得了邊緣清晰、高保真度的優勢。
在ShapeNet 資料集上進行的多個類別的實驗表明,與現有技術相比,MeshGPT 顯著提高了生成3D 網格的品質,形狀覆蓋率平均提高了9%,FID 分數提高了30 個點。
在社群媒體平台上,MeshGPT 也引發了熱議:
##有人曾說過:「這才是真正具有革命性的創意。」
一位網友指出,該方法的亮點在於克服了其他3D 建模方法的最大障礙,即編輯能力。
有人大膽預測,也許自90年代以來未解決的所有難題都可以從Transformer中得到啟示:
也有從事3D / 電影製作相關行業的用戶對自己的職業生涯表示擔憂:
##然而,也有人指出,根據論文中提供的生成範例來看,這種方法還沒有達到大規模應用的階段。一個專業的建模人員完全可以在5分鐘內創建這些網格
#這位評論者表示,下一步可能是由LLM 控制3D 種子的生成,並將影像模型新增至架構的自回歸部分。走到這一步後,遊戲等場景的 3D 資產製作才能實現大規模的自動化。
接下來,讓我們來看看 MeshGPT 這篇論文的研究細節。
受大語言模型進步的啟發,研究者發展了一種基於序列的方法,將三角形網格作為三角形序列進行自迴歸產生。這種方法能產生乾淨、連貫和緊湊的網格,具有邊緣銳利和高保真的特點。
研究者首先從大量的 3D 物件網格中學習幾何詞彙的嵌入,從而能夠對三角形進行編碼和解碼。然後,根據學習到的嵌入詞庫,以自回歸下索引預測的方式訓練用於網格生成的 Transformer。
為了學習三角形詞彙,研究者採用了圖形卷積編碼器,對網格的三角形及其鄰域進行操作,以提取豐富的幾何特徵,捕捉3D 形狀的複雜細節。這些特徵透過殘差量化被量化為 codebook 中的 Embedding,從而有效地減少了網格表示的序列長度。這些內嵌資訊在排序後,在重建損失的指導下,由一維 ResNet 進行解碼。這一階段為 Transformer 的後續訓練奠定了基礎。
接下來,研究者使用這些量化的幾何嵌入,訓練出一種類似 GPT 的純解碼器 transformer。他們透過提取網格三角形中的幾何嵌入序列,並訓練transformer 來預測序列中下一個嵌入的codebook 索引
#訓練完成後,transformer 可以自回歸採樣,以預測嵌入序列,然後對這些嵌入進行解碼,產生新穎多樣的網格結構,顯示出與人類繪製的網格類似的高效、不規則三角形。
MeshGPT 採用圖卷積編碼器處理網格面,並利用幾何鄰域資訊捕捉表徵3D形狀複雜細節的強特徵,然後利用殘差量化方法將這些特徵量化成codebook 嵌入。與簡單的向量量化相比,這種方法能確保更好的重建品質。在重建損失的指導下,MeshGPT 透過 ResNet 對量化後的嵌入進行排序和解碼。
#
本研究使用Transformer模型從預先訓練的codebook詞彙庫中產生網格序列作為token索引。在訓練過程中,影像編碼器從網格表面提取特徵,並將其量化為一組表面嵌入。這些嵌入被平鋪,用開始和結束的token標記,然後輸入到上述GPT類型的Transformer模型。解碼器透過交叉熵損失進行最佳化,預測每個嵌入的後續codebook索引
該研究將MeshGPT 與常見的網格生成方法進行了比較實驗,包括:
此外,研究還將 MeshGPT 與基於神經場的 SOTA 方法 GET3D 進行了比較。
如圖 6、圖 7 和表 1 所示,在全部的 4 個類別中,MeshGPT 都優於基準方法。 MeshGPT 可以產生尖銳、緊湊的網格,並具有較精細的幾何細節。
具體來說,與Polygen 相比,MeshGPT 能產生具有更複雜細節的形狀,而Polygen 在推理過程中更容易累積錯誤;AtlasNet 經常出現折疊瑕疵(folding artifact ),導致多樣性和形狀品質較低;BSPNet 使用平面的BSP 樹往往會產生具有不尋常三角測量模式的塊狀形狀;GET3D 可產生良好的高層次形狀結構,但三角形過多,且平面不完美。
##如表2 所示,研究也讓使用者對MeshGPT 生成網格的品質進行了評估,在形狀和三角測量品質方面,MeshGPT 明顯優於AtlasNet、Polygen 和BSPNet。與 GET3D 相比,大多數使用者更喜歡 MeshGPT 生成的形狀品質(68%)和三角測量品質(73%)。
以上是Transformer變革3D建模,MeshGPT生成效果驚動專業建模師,網友:革命性idea的詳細內容。更多資訊請關注PHP中文網其他相關文章!