從線到面——繪製草圖輕鬆構建三維模型

微軟研究院AI頭條發表於2017-06-05

“從點到線,由線到面”,是我們認識和解決複雜問題常用的指導原則。在計算機圖形學和三維造型中,這一思想也在字面意義上得以踐行:為了構造複雜的三維物體,有一類通用方法,稱作繪製介面與造型(Sketch-based interface and modeling),被圖形學研究者提出並發展了幾十年。


簡而言之,使用者只需要繪製簡單、粗糙的線框草圖,計算機便能從草圖出發構造符合使用者期望的完整三維形狀。繪製造型技術是圖形學的重要研究領域,主要原因是隻需要輸入一個簡單、直觀的草圖便可產生複雜而準確的空間形狀。


因此該項技術常常被產品設計者、三維藝術家等廣泛使用,以快速地將他們對於產品、虛擬場景的構思轉化為可以進一步豐富和細化的三維原型。隨著該技術的發展,研究者們更加關注如何讓未經專業訓練的人釋放創造力,輕鬆地構造複雜模型,為更豐富的混合現實應用提供個性化的內容。本文接下來將要講述的,是我們在促進繪製造型技術表達力和易用性方面取得的進展。

 

在本文中,我們首先會介紹如何從空間曲線框出發,生長出符合線框形狀、滿足直觀期望的三維曲面,這方面的研究推進了如何構造準確而複雜的空間形狀的演算法演進;然後我們會介紹如何直接從繪製的平面草圖獲得符合想象的空間自由形狀,這既擴充了使用者輸入的自由度,又豐富了可構造的形狀。這兩個問題都涉及到如何產生準確且符合期望的曲面形狀,而我們是通過應用經典微分幾何知識、開發相應幾何處理演算法達成這一目標的。


事實上,使用者繪製的形狀草圖中,很多線都是所刻劃形狀的具有代表性的流線,數學上稱之為該形狀的主曲率線。如何從這些粗糙近似的主曲率線中恢復曲面,便是我們要解決的核心問題。該核心問題的求解,屬於幾何處理技術和優化方法的典型應用,因此通過該問題,我們也得以一窺近年來幾何處理方向所取得的一些基礎的技術進步。

 

用對齊流線的曲面填充空間曲線框

                                   

從線到面——繪製草圖輕鬆構建三維模型

圖1 咖啡機:空間曲線框和對應的填充後的三維形狀

三維線框的產生比較困難,現有技術主要包括使用多檢視、構建輔助線、針對規則物體優化等方法。為了簡化問題,假定我們已經獲得了三維空間中的線框(如圖1左)。需要將線框填充上合適的曲面,才能構成完整的三維模型(如圖1右)。


能夠插值線框的三維曲面有無數個,但其中一些形狀要更加合理、更符合我們觀察曲線時持有的期望。如何將這種期望進行量化?藝術家和設計師往往根據經驗,使用有代表性的流線來簡潔地刻畫一個三維形狀。因此,我們需要的曲面所具有的流線應當和給定空間線框一致。從這一目標出發,我們構造了通過對齊給定流線來尋找期望曲面的演算法。


我們採用變分方法,定義一個可變的曲面,該曲面插值給定線框,目標則是曲面自身的曲率方向應該和給定流線對齊。為了解決這個困難的非線性問題,我們反過來根據流線建模目標的曲率方向場,以之引導曲面變形,使它的曲率方向更好地匹配該目標方向場(演算法流程見圖2)。得益於近十年來幾何處理方向的紮實進展,構造目標曲率場和曲面變形都更加可靠且高效。因此,對齊流線演算法可以在7秒鐘內構造出如圖1右所示的三維曲面。


從線到面——繪製草圖輕鬆構建三維模型

圖2 構造對齊流線的曲面的過程

從左至右:初始的曲面、初始曲面上構造的目標曲率方向場、變形後的曲面、和變形後曲面的曲率場 。可以看到,最終曲面的曲率方向光滑地對齊於空間線框。


構造目標曲率場使用了一項一般性技術,即曲面上光滑四方向場的構造。所謂四方向場,即在曲面上每個點處定義一個十字形標架,指明在該點處前後左右的方向。因為曲面非零的高斯曲率,在每一點處定義這樣的十字形標架明顯比平面上的統一座標系困難。幾何處理的技術是採用黎曼幾何的思想,在每個點的區域性將曲面展平,建立該點與鄰接點之間的連線變換,得以衡量兩點間標架的一致性。然後把所有這樣的鄰接點對的標架差異極小化,就得到了曲面上的光滑四方向場。


現在的常用演算法通過迭代求解線性方程組,可以在約0.4秒內計算出曲面上2萬個點的光滑標架。曲面上構造的方向場有廣泛用處,比如早期用於產生曲面上的流線以展示曲面形狀的特徵(恰好是我們所要求解問題的反面),在空間曲面上鋪平紋理圖片,產生曲面上規則的四邊形網格,到最新用於三維幾何重建等。由此可見,在彎曲的空間上獲得方向的指示有著重要意義。


曲面的變形是另一項成果顯著的幾何處理方法。如圖2中間兩圖所示,我們希望中間左圖的曲面能夠變形到它的曲率方向對齊上面由流線引匯出的光滑方向場。曲面的形狀在每個區域性由它的曲率刻畫,所謂變形即是改變曲面的曲率。這裡我們可以依賴的幾何處理工具是曲面上曲率表達的離散化,即我們能夠建立以三角網格表示的曲面上每頂點處曲率的函式表示式,該函式以三角網格每個頂點的三維座標為變數。圖形學中,大量的應用將該表示式做線性化處理,用以實現實時互動的變形,如實時地拖拽一個三維動物的手腳來改變它的姿態,模擬一塊布料碰撞物體,甚至捕捉重建運動中人的動態等。


在圖3中,我們看到更多以對齊流線的方法構造麴面的結果。這些結果均符合我們觀察曲線時對物體空間形狀的想象。


從線到面——繪製草圖輕鬆構建三維模型

 圖3 更多的對齊流線曲面結果

用平面繪製構造自由曲面


從線到面——繪製草圖輕鬆構建三維模型

圖4 茶杯:參考圖片、平面草圖、和對應的三維物體(平面草圖定義了正面的形狀,背面通過對稱獲得)


很多時候我們想要構造的物體並不具有規則的線框,而是有著豐富的形狀變化和細節,因此需要更靈活的線條來刻畫這些更自由的形狀。如圖4所示,為了構造參考圖片中給出的茶杯,我們繪製了中間所示的非常稀疏的平面草圖,然後憑藉演算法構造出右圖所示的有豐富變化、與圖片相似的三維物體。


與第一個問題不同的是,這些零散的平面草圖沒有嚴密的結構,無法被轉換到三維空間,因此我們無法通過尋找插值空間曲線的曲面的方法構造三維物體,而必須將平面草圖所覆蓋的區域直接轉換到帶有深度的三維形狀。


與第一個問題相似的地方則是,除去物體邊界線,這些零散的平面筆畫很多仍然是以曲率線的方式刻畫所期望的三維物體。為了區別於前面所述空間中的流線,我們稱這些平面投影的曲率線為曲面彎折線。假設物體邊界線的空間位置會通過其他方式給定,剩下的問題就是如何找到插值邊界曲線的曲面,使得它的曲率方向投影到平面後與使用者所畫的彎折線一致。


借鑑第一個問題的解決思路,我們仍然尋求從彎折線匯出的光滑方向場出發,以之作為曲面應具有的目標曲率場(見圖5)。所不同的是,在空間曲面上每一點處的前後與左右為垂直方向,而投影到平面區域後,這些方向不再垂直。我們考慮到了這些差異,並定義了一個區域性光滑的物體的曲率線在投影后應具有的屬性。然後求解滿足這些屬性的平面曲率方向場(圖5中圖),最後尋找曲面使其對齊這個曲率場。


從線到面——繪製草圖輕鬆構建三維模型

圖5 從平面草圖產生三維自由形狀的演算法流程

從左至右:輸入的平面草圖(其中的彎折線被自動標記了曲率正負)、產生覆蓋平面區域的網格、構造對齊了彎折線的目標曲率方向場、最終求得的曲率場、和對應的空間曲面


另一個區別於第一個問題的方面在於,此時的彎折線本身不帶有曲率大小資訊,僅僅包含曲率方向,而我們必須完整重現出曲率大小,才可以確定曲面的空間形狀。我們採取兩個步驟來解決這個問題:第一步是確定彎折線每段所代表的曲率正負,這通過將彎折線分解為簡單弧線並利用弧線間的關係做出分類;第二步則是估計彎折線所應具有的曲率值大小。


曲線之間的曲率大小互相影響,且需要存在曲面能夠實現特定的曲率,因此我們再一次直接從變化的曲面出發,求解變分問題,要求嵌入曲面中的彎折線所匯出的曲率場與曲面自身的曲率一致(如圖5右兩圖所示)。為了求解這個離散化到三角形網格的變分問題,我們採用迭代方法,每步迭代則是求解變分問題的線性近似問題。通過每步迭代求解線性方程組,對於如圖5所示的曲面,約7千個變數的變分問題可以在3秒以內解決。


完整的物體,每個角度所能看到的只是一片曲面,其他表面被遮擋了。為了構造完整的物體,我們採用多個視角,每個視角下通過繪製草圖構造對應的空間曲面,然後將各曲面合併成完整的物體。合併多個曲面,仍然是一個曲面變形的問題,只是這時我們需要每片曲面儘量保持自身形狀的同時能夠在相交處重合。


從線到面——繪製草圖輕鬆構建三維模型

圖6 通過繪製平面草圖構造的三維物體


圖6展示了通過繪製平面草圖的方法,構造了具有自由形狀的物體。它們大多具有豐富的變化,無法用簡單的規則線條描述,散亂的彎折線卻能恰當地捕捉其形狀的變化規律。

在下面的視訊中,我們可以看到對於該問題的概括講解和實際的互動繪製造型過程。

                                  

結束語

本文只介紹了通過繪製草圖構造三維物體的一類方法。事實上,有更多的方法專注於構造具體類別的物體,包括人臉、衣服、機械零件、花草樹木、城市建築、以草圖檢索三維物體資料庫等。我們期待將來的新技術和新資料,能夠允許普通人通過簡單的繪製輕鬆創造豐富的三維物體、場景和動態,讓創造觸手可及。


在基礎技術層面,希望大家可以通過本文了解到一點計算機圖形領域、幾何處理方向的經典成果和思路。幾何處理的問題來源於幾何重建、造型、動畫等的實際應用,但是其有效性也深刻依賴於數學和幾何理論的支援。隨著三維資訊的獲取裝置越來越輕便,以及獲得資訊質量的提高,我們希望未來的幾何處理技術能夠有效地利用這些資訊,並持續從理論角度發展更可靠、高效的演算法,將圖形學的應用範圍最終擴充套件到現實世界。


從線到面,過去的工作已經確立了一些可行的案例,希望以後我們能夠完整構建一個立體的曲面,得以覆蓋生活中需要可視計算技術的方方面面。


​原文連結:https://mp.weixin.qq.com/s/3J5NG-QSAYxU4RDRVAfjRQ


相關文章