在細分曲面上雕刻2d圖像的制作方法
【專利摘要】一種方法,包括以下步驟:由用戶定義(S10)與細分曲面以及相應的預定的網格到NURBS曲面轉換算法(PCCM(·))相關的基網格(B0),所述細分曲面表征所述3D建模對象;由所述用戶定義(S20)2D圖像和用于在所述細分曲面上雕刻所述2D圖像的位置;以及確定(S30)與將形變映射應用(S36)在對所述基網格執行(S34)所述網格到NURBS曲面轉換算法所得的結果(S0=PCCM(B0))上對應的NURBS曲面(S1),所述形變映射包括針對對所述基網格執行(S34)所述網格到NURBS曲面轉換算法所得的結果的位置提供的位移向量,所述位置與雕刻所述2D圖像的位置對應,所述位移向量是基于所述2D圖像的對應像素值來計算(S32)的。該方法改善了3D建模對象的設計。
【專利說明】
在細分曲面上雕刻2D圖像
技術領域
[0001] 本發明主要涉及計算機輔助設計(CAD)領域,尤其是一種用于通過圖形用戶交互 借助基于2D圖像的數據處理來設計3D建模對象的方法、程序和系統,。
【背景技術】
[0002] 在市場中針對對象的設計、工程和制造提供有多個系統和程序。CAD是計算機輔助 設計的首字母縮寫,舉例來說,它涉及用于設計對象的軟件解決方案。CAE是計算機輔助工 程的首字母縮寫,舉例來說,它涉及用于仿真未來產品的物理行為的軟件解決方案。CAM是 計算機輔助制造的首字母縮寫,舉例來說,它涉及定義制造過程和操作的軟件解決方案。在 這些計算機輔助設計系統中,圖形用戶界面扮演著與技術效率相關的重要角色。這些技術 可嵌入在產品生命周期管理(PLM)系統中。PLM指的是一種商業策略,圍繞"延伸性企業"的 概念,其幫助公司共享產品數據、應用通用的過程,并且提升用于產品從概念到該產品生命 結束的開發的企業知識。
[0003] 由DASSAULT SYSTEMES(商標為CATIA、EN0VIA和DELMIA)提供的PLM解決方案提供 了:工程中心,其對產品工程知識進行組織;制造中心,其對制造工程知識進行管理;以及企 業中心,其使得能夠將企業整合并結合到工程中心和制造中心二者中。總之,該系統提供了 一種開放的對象模型,將產品、過程、資源聯系起來,以實現動態的、基于知識的產品創新和 決策支持,這推動了對產品定義、制造準備、生產和服務的優化。
[0004] CAD解決方案廣泛使用兩項主要的眾所周知的曲面(surface)建模技術:非均勻有 理B樣條曲面(下稱NURBS)以及細分曲面。
[0005] NURBS技術基于的是通過被稱為"控制點"的3D點的矩形柵格(grid)進行處理的多 項式參數化或有理參數化。通過移動控制點來執行對NURBS曲面的編輯。以多項式的次數不 取決于控制點的數量的方式來設計該技術。進一步地,控制點的影響被限制在相鄰區域。因 此,用戶能夠局部修改表面的形狀,而不用觸及所述相鄰區域之外的區域。該領域經典的參 考資料是課本《The NURBS book》,L· Piegl和T ·Wayne,Springer,第2版,2013年。
[0006] 另一方面,細分曲面是通過由點和線段構成的三維"基網格"定義的。基網格由用 戶定義,其特定可以是任意的拓撲結構,這與NURBS的控制點的矩形柵格相反。基網格控制 了細分曲面的整體形狀,并且可以由用戶編輯。基網格的改變會影響整個細分曲面。與 NURBS曲面相反,細分曲面是細分過程中的始于基網格的限定對象。圖1示出了三孔閉合基 網格11和第一細分步驟。限定曲面是光滑三孔環狀對象13。主要在如下參考中解釋了基本 原理:"Recursively generated B-Spline surfaces on arbitrary topological meshes",E·Catmull,J.Clark,Computer Aided Design,第 10卷第6期,1978年11 月。值得注 意的是,如文獻US 7595799 B2(對應于EP 1750229B1)和US 7400323 B2中所解釋的,通過 將基網格轉換為NURBS曲面,經由配置NURBS曲面來趨近細分曲面是可能的。
[0007] 簡而言之,NURBS技術的特點在于局部修改能力和網格定義的拓撲結構,細分技術 的特點在于任意拓撲結構和非局部編輯能力。顯然,由于其處理局部修改的能力,因此 NURBS技術能夠良好地支持在保存曲面的整體形狀的同時在其上進行的小細節的創建。相 反,細分曲面技術則不支持該能力。另一方面,與自身拓撲結構被限制為矩形的控制點柵格 的NURBS曲面相反,細分曲面技術能支持任意拓撲結構。
[0008] 顯然,現有技術中缺乏在具有任意拓撲結構的曲面上作出局部改變的能力。在這 種環境下,仍然需要一種用以設計3D建模對象的改進的解決方案。
【發明內容】
[0009] 由此,提供了一種計算機實現的設計3D建模對象的方法。該方法包括以下步驟:由 用戶定義與細分曲面以及相應的預定的網格到NURBS曲面轉換算法相關的基網格。該細分 曲面代表該3D建模對象。該方法還包括以下步驟:由用戶定義2D圖像和在該細分曲面上雕 刻該2D圖像的位置。該方法還包括以下步驟:確定與將形變映射應用在對基網格執行網格 到NURBS曲面轉換算法所得的結果上對應的NURBS曲面。該形變映射包括針對對基網格執行 網格到NURBS曲面轉換算法所得的結果的位置提供的位移向量。該位置對應于雕刻該2D圖 像的位置。該位移向量是基于該2D圖像的對應像素值計算的。
[0010] 該方法可包括以下項目的一項或多項:
[0011] -該方法包括計算位移向量,包括:從基網格確定與雕刻該2D圖像的位置對應的第 一 3D網格;通過基于2D圖像的對應像素值在第一 3D網格的法線方向上位移第一 3D網格的頂 點,來從第一3D網格確定第二3D網格;以及針對對基網格執行網格到NURBS曲面轉換算法所 得的結果的位置,計算一位移向量,該位移向量等于對第二3D網格執行網格到NURBS曲面轉 換算法所得的結果的對應控制點與對第一 3D網格執行網格到NURBS曲面轉換算法所得的結 果的對應控制點之間的3D位置差;
[0012] -確定第一 3D網格包括提取基網格的與雕刻2D圖像的位置對應的子網格,然后將 該子網格細分預定的倍數;
[0013] -該預定的倍數是由用戶定義的和/或基于與2D圖像的細節水平有關的預定標準 而遞增;
[0014] -2D圖像的對應像素值是像素灰度值;
[0015] -位移向量的幅度基于對應的灰度值而遞增;和/或
[0016] -用戶進一步從預定的二元表(binary list)中選擇雕刻方向。
[0017]進一步提供了一種由該方法設計而成的3D建模對象。
[0018]進一步提供了一種包括該3D建模對象的設計規格的計算機文件。
[0019] 進一步提供了一種包括執行該方法的指令的計算機程序。
[0020] 進一步提供了一種其上存儲有該計算機程序的計算機可讀數據存儲介質。
[0021] 進一步提供了一種包括耦合到存儲器和圖形用戶界面的處理器的CAD系統,該存 儲器上存儲有該計算機程序。
[0022] 進一步提供了一種制造工業產品的方法,包括以下步驟:根據以上設計方法設計 代表工業產品的三維對象,然后基于所設計的三維對象制造該工業產品。
【附圖說明】
[0023]現在將以非限制性例子的形式,參考附圖,描述本發明的實施例,其中:
[0024] -圖1示出了細分曲面;
[0025] -圖2是方法的例子的流程圖;
[0026]-圖3不出了系統的圖形用戶界面的例子;
[0027]-圖4不出了系統的例子;以及 [0028]-圖5至圖26闡釋了方法。
【具體實施方式】
[0029] 參考圖2的流程圖,提出了一種計算機實現的設計3D建模對象的方法。該方法包括 以下步驟:由用戶定義(SlO)與細分曲面以及相應的預定的網格到NURBS曲面轉換算法相關 的基網格。該細分曲面代表該3D建模對象。該方法還包括由用戶定義(S20) 2D圖像和在該細 分曲面上雕刻該2D圖像的位置。該方法然后包括確定(S30)與將形變映射應用在對基網格 執行網格到NURBS曲面轉換算法所得的結果上對應(即,所謂"對應",意味著獲取NURBS曲面 的特定方式是個實施細節,只要能夠通過以下步驟獲得結果(至少大約地獲得結果,例如, 一會兒提到的"近似值"的意思),即使這些特定步驟沒有被實施)的NURBS曲面。該形變映射 包括包括針對對基網格執行網格到NURBS曲面轉換算法所得的結果的位置提供的位移向 量。這些位置對應于雕刻2D圖像的位置。這些位移向量是基于2D圖像的對應像素值來計算 的。該方法改善了 3D建模對象的設計。
[0030] 值得注意的是,該方法允許在與細分曲面以及相應的預定的網格到NURBS曲面轉 換算法相關的基網格的環境下對3D建模對象進行設計修改,帶來的優勢是這樣的設計環境 對CAD領域來說是及其熟悉的。事實上,貫穿整個方法保留了基網格結構以及有關曲面設計 的相關用戶意圖,這只是相當于對CAD設計者所習慣的基網格框架增加了設計規格 (specification)。不同于現有技術在基網格上實施的修改方案(例如,增加多分辨率信息 和/或在細分后增加細節),該方法不打算在基網格隨后的轉換(通過在S30的預定的網格到 NURBS曲面轉換算法)之前對該基網格作細分,從而使得所述隨后的轉換可以容易地(在計 算成本方面)實現,而不會抑制控制點的數量。換句話說,隨后將要輸入到轉換算法的網格 的面數不會由于該方法而過度增長。不同于現有技術在NURBS上實施的修改方案,該方法允 許對被提供為具有細分曲面的基網格的模型進行修改,從而得益于該環境(優勢在于在該 框架內可能的任意拓撲結構,以及相對于復雜NURBS而言,基網格所占用的小存儲空間),用 戶隨后可以以相對簡單的方法執行其它修改。事實上,如CAD領域眾所周知的,花式設計由 于這些原因而更適合在細分曲面上而不是在NURBS上執行。因此,即使增加了在S20所定義 的設計規格之后,用戶也可以執行對3D建模對象的基網格編輯。同樣,既然定義步驟S20執 行在基網格層面上,那么該方法確保了 NURBS面片(patch)之間的連續性不會被過度地破 壞。
[0031]因此該方法向用戶提供了簡單的、交互式的并且直觀的方式,通過在S20以在細分 曲面上具有位置的2D圖像的形式定義設計規格,從而在3D建模對象上增加局部細節。該編 輯仿真了真實的雕刻,同時也考慮到了用戶的工業需求,包括基于(利用基網格的)曲面細 分技術來保持一項設計的前后環境,此外在這里,最終的曲面的連續性也很重要。
[0032]該方法是計算機實現的。該方法的步驟實際上在計算機系統上由該計算機系統單 獨執行,或者由圖形用戶交互(即,由用戶通過計算機系統的GUI進行交互)執行。因此,特定 由計算機系統執行的步驟可以完全自動地執行。例如,對該方法的至少一些步驟的觸發可 以是通過用戶-計算機交互而執行的。尤其是,定義步驟SlO和S20由在計算機上工作的用戶 在相同工作會話或不同工作會話中執行。確定步驟S30可以由用戶在相同的工作會話中 (S10和S20二者的工作會話,或者僅S20的工作會話)或者在不同的工作會話中觸發。所需的 用戶-計算機交互水平可以取決于所預見的自動化水平,并且與實現用戶愿望的需求保持 平衡。例如,該水平可以由用戶定義和/或預定義。
[0033]本方法的計算機實現方式的典型示例將通過適配于本目的的系統來執行該方法。 該系統可包括耦合到存儲器和圖形用戶界面(GUI)的處理器,該存儲器在其上記錄有計算 機程序,該計算機程序包括用于執行該方法的指令。存儲器還可存儲數據庫。該存儲器是任 意適用于這種存儲的硬件,可能包括若干不同的物理部分(例如,一個用于程序,可能還有 一個用于數據庫)。
[0034]該方法通常處理建模對象。建模對象是由數據庫中存儲的數據定義的任意對象。 擴展開來,"建模對象"這一表述指的是數據本身。"設計3D建模對象"指的是任意一個或系 列動作,這些動作是加工3D建模對象的過程的至少一部分。因此,該方法可包括從頭開始創 建3D建模對象。可替代地,該方法可包括提供先前創建的3D建模對象,然后修改該3D建模對 象,尤其是通過由該方法所完成的雕刻來實現。
[0035] 根據系統的類型,建模對象可由不同種類的數據來定義。系統實際上可以是CAD系 統、CAE系統、CAM系統、PDM系統和/或PLM系統的任意組合。在這些不同系統中,建模對象由 對應的數據來定義。人們可以因此提到CAD對象、PLM對象、PDM對象、CAE對象、CAM對象、CAD 數據、PLM數據、PDM數據、CAM數據、CAE數據。然而,這些系統之間互相并不排除,因為建模對 象可以由與這些系統的任意組合相對應的數據來定義。因此,系統也可以既是CAD也是PLM 系統,正如在以下提供的這種系統的定義中將變得顯而易見的那樣。
[0036] 所謂CAD系統,是指至少適用于基于建模對象的圖形化表征而設計建模對象的任 意系統,例如CATIA。在這種情況下,定義建模對象的數據包括能夠實現建模對象的表征的 數據。CAD系統例如可以使用邊沿或線條(在某些情況下通過面或曲面)來提供對CAD建模對 象的表征。線條、邊沿或曲面可由各種方式來表征,例如,非均勻有理B樣條(NURBS)。特別 地,CAD文件包含了生成幾何圖形所可以依據的設計規格,而該設計規格轉而使得能夠生成 表征。建模對象的設計規格可存儲在單個或多個CAD文件中。表征CAD系統中的建模對象的 文件的典型大小在每個部件IMB的范圍之內。建模對象典型地可以是數以千計個部件的組 合。
[0037]在CAD系統的環境中,建模對象通常可以是3D建模對象,例如,表征一件產品,諸如 部件或是部件的組合,或可能表示產品的組合。所謂"3D建模對象",是指通過實現任意對象 的3D表征的數據所建模的該對象。3D表征允許從所有角度查看該部件。例如,3D建模對象當 被3D展示時,可圍繞其任意軸、或圍繞顯示該表征的屏幕中的任意軸對其進行處理和旋轉。 這尤其不包括2D圖符(icon),其并不是3D建模的。3d表征的顯示有助于設計(即,提高了設 計者數據式地完成任務的速度)。這加快了行業中的制造過程,因為產品的設計是生產或建 模過程的一部分。3D建模對象還具有的特性是不僅由SlO的基網格定義、而且還由在S20定 義的數據來定義,在S20定義的數據構成了對傳統3D建模對象的附加的設計規格。
[0038] 3D建模對象可表征在通過例如CAD軟件方案或CAD系統對產品的虛擬設計完成之 后將在實際世界中制造的產品的幾何圖形,諸如一個(例如,機械的)部件或部件的組合,或 更常規地,任意剛性體的組合(例如,移動機構)XAD軟件方案允許設計各種非限制性行業 領域中的產品,這些行業領域包括:航空航天、建筑、建設、生活消費品、高科技裝置、工業設 備、運輸、海運、和/或離岸業務(offshore)或運輸。因此,由該方法設計的3D建模對象表征 工業產品,其可以是陸地交通工具的一部分(包括,例如,汽車和輕型卡車設備、賽車、摩托 車、卡車和摩托設備、卡車和公共汽車、火車)、航空工具的一部分(包括,例如,機身設備、航 空航天設備、推進設備、防御產品、航線設備、空間設備)、船舶工具的一部分(包括,例如,海 軍設備、商業船只、離岸設備、游艇和施工船、海運設備)、機械部件(包括,例如,工業制造機 械、重移動機械或設備、安裝設備、工業設備產品、裝配金屬產品、輪胎制造產品)、電動機械 或電子部件(包括,例如,消費類電子設備、安保和/或控制和/或儀器產品、計算和通信設 備、半導體、醫用裝置和設備)、生活消費品(包括,例如,家具、家居和園藝產品、休閑品、時 尚產品、耐用商品零售商的產品、軟商品零售商的產品)、包裝(包括,例如,食品和飲料以及 煙草、美容和個人護理、家庭產品包裝)。在3D建模對象的美學方面很重要時,該方法尤其有 用。尤其是當3D建模對象表征車輛或飛機的機械部件(例如可視部件)、或生活消費品(例如 電子商品,如攝像機)時尤為有用。
[0039]所謂PLM系統,是指適配于管理表征物理制造的產品的建模對象的任意系統。在 PLM系統中,建模對象因此由適合于制造物理對象的數據來定義。這些典型地可以是維度值 和/或容限值。為了正確地制造對象,確實最好能有這些數值。
[0040] CAM代表計算機輔助制造。所謂CAM解決方案,是指適用于管理產品的制造數據的 任何(軟件或硬件)解決方案。制造數據通常包括與要制造的產品、制造進程和所需資源相 關的數據。CAM解決方案用于計劃和優化產品的整個制造過程。例如,可以向CAM用戶提供可 行性、制造過程的持續時間或可被用于制造過程的特定步驟的資源數等信息,例如特定自 動設備;并因此使得能夠對管理或所需投資進行決策決策。CAM是CAD進程和潛在的CAE進程 之后的后續進程。這些CAM解決方案由Dassault Systgmes在商標DELMIA?下提供。
[0041] CAE代表計算機輔助工程。所謂CAE解決方案,是指適用于分析建模對象的物理行 為的任何(軟件或硬件)解決方案,。一種公知并廣泛使用的CAE技術是有限元法(FEM),其典 型地包括將建模對象劃分成可以通過方程式計算和仿真其物理行為的元件。這些CAE解決 方案由Dassault Systgmes在商標SIMULIA?下提供。另一種新興的CAE技術涉及在無需 CAD幾何數據的情況下對由來自不同物理領域的多個分量組成的復雜系統的建模和分析。 CAE解決方案允許對待制造的產品進行仿真,并且由此允許對其進行優化,改進和驗證。這 些CAE解決方案由Dassault Systgmes在商標DYMOLA?下提供。
[0042] PDM代表產品數據管理。所謂PDM方案,是指適用于管理與特定產品相關的所有種 類的數據的任何(軟件或硬件)解決方案。PDM解決方案可由參與到產品生命周期中的所有 參與者使用:主要是工程師,但也包括項目經理、財務人員、銷售人員和購買者。PDM解決方 案通常是基于面向產品的數據庫的。其允許用戶共享他們產品的一致數據,并且由此防止 了參與者使用有差異的數據。這些I 3DM解決方案由Dassault Systgmes在商標ENOVIA? 下提供。
[0043]圖3示出了系統的GUI例子,其中該系統是CAD系統。
[0044] GUI 2100可以是典型的類CAD的界面,具有標準菜單條2110、2120、以及底部和側 邊工具條2140、2150。這些菜單條和工具條包括用戶可選圖標的集合,如技術中已知的,每 個圖標與一個或多個操作或功能相關。這些圖標中的某些與軟件工具相關,適用于在GUI 2100所顯示的3D建模對象2000上進行編輯和/或工作,所顯示的3D建模對象2000例如是執 行該方法所得的結果。軟件工具可分組為工作臺。每個工作臺包括軟件工具的子集。特別 地,工作臺中的一個是編輯工作臺,適合于編輯該建模對象2000的幾何特征。操作中,設計 者例如可以預選擇對象2000的一個部件,然后發起一項操作(例如,改變大小、顏色、等等) 或者通過選擇一個合適的圖標,編輯幾何約束條件。例如,典型的CAD操作是對屏幕上所顯 示的3D建模對象的沖壓或折疊進行建模。該GUI例如可以顯示與所示的產品2000相關的數 據2500。在圖2的例子中,數據2500被顯示為"特征樹",它們的3d表征2000有關于包括制動 鉗和制動盤的制動組件。GUI還可顯示例如用于簡化對象的3D方位、用于觸發對被編輯產品 的操作的仿真、或用于呈現所顯示產品2000的各種屬性的各種類型的圖形工具2130、2070、 2080。指針2060可由觸覺裝置控制,以允許用戶與圖形工具交互。
[0045]圖4示出了該系統的例子,其中該系統是客戶端計算機系統,例如用戶的工作站。 [0046]該例子中的客戶端計算機包括:中央處理單元(CPU) 1010,其與內部通信BUS 1000 連接;隨機存取存儲器(RAM)1070,其也與BUS連接。該客戶端計算機還配備有圖形處理單元 (GPU) 1110,其與連接到BUS的視頻隨機存取存儲器1100相關聯。視頻RAM 1100作為幀緩沖 器是在本領域技術中公知的。大容量存儲裝置控制器1020管理對大容量存儲裝置的存取, 如硬盤驅動器1030。適合有形體現計算機程序指令和數據的大容量存儲裝置包括所有形式 的非易失存儲器,例如包括:半導體存儲裝置,諸如EPR0M、EEPR0M、閃存裝置;磁盤,諸如內 部硬盤和可移除盤;磁性光盤;以及⑶-ROM盤1040。前述的任意一個可以由專門設計的ASIC (專用集成電路)補充,或并入專門設計的ASIC(專用集成電路)中。網絡適配器1050管理對 網絡1060的接入。客戶端計算機還可包括觸摸裝置1090,如指針控制裝置、鍵盤等等。指針 控制裝置用于客戶端計算機,使用戶可以選擇性地將指針定位于顯示器1080上任意期望的 位置。此外,指針控制裝置允許用戶選擇各種命令和輸入控制信號。指針控制裝置包括用于 向系統輸入控制信號的多個信號產生裝置。典型地,指針控制裝置可以是鼠標,鼠標的按鍵 用于生成信號。可替換地或是附加地,客戶端計算機系統可包括感應/觸摸板、和/或感應/ 觸摸屏。
[0047]計算機程序可以包括可由計算機執行的指令,指令包括使得上述系統執行該方法 的單元。程序可以是可被記錄在任何數據存儲介質上的,包括該系統的存儲器在內。程序例 如可以實現在數字電子電路中、或計算機硬件、固件、軟件或它們的組合中。程序可以被實 現為設備,例如在機器可讀存儲裝置中有形體現的用于由可編程處理器執行的產品。方法 步驟可以由可編程處理器執行,可編程處理器執行程序指令以通過操作輸入數據和產生輸 出來實施該方法的功能。處理器因此可以是可編程的,并且耦合以從數據存儲系統、至少一 個輸入裝置、和至少一個輸出裝置處接收數據和指令,以及向數據存儲系統、至少一個輸入 裝置、和至少一個輸出裝置發送數據和指令。應用程序可以被實現為高級程序或對象導向 的編程語言,或者被實現為匯編語言或機器語言(如果需要的話)。在任意情況下,語言可以 是已編譯的或已解譯的語言。程序可以是完整的安裝程序或更新程序。將程序應用于系統 的在任何情況下得到的都是用于執行該方法的指令。
[0048] 現在來討論定義SlO。
[0049] 如CAD領域所公知的,用戶常常會定義(即,設計)網格,稱為與細分曲面相關聯的 "基網格"。這就是本方法中SlO所做的事。網格表示具有頂點(3D位置)和邊沿(例如,段)的 任何圖形結構,邊沿將頂點兩兩連接并形成網格的所謂的面(即,邊沿的最小的環)。網格可 以是不同類型中的一個,包括四方網格(主要或完全由四邊沿面組成)和三角形網格(主要 或完全由三邊沿面組成)。定義SlO可以以任意方式實現,包括依據US 7893937 B2中的對稱 操作進行的快速復制。
[0050] CAD中的基網格關聯于細分曲面和對應的預定的網格到曲面轉換算法。事實上,基 網格在定義3D建模對象幾何圖形的數據中是基礎網格。換句話說,對象的幾何圖形由網格 來表示。更特別地也是公知地,基網格在概念上與細分算法相關聯。依據所述細分算法對基 網格作無限細分將得到一個曲面,稱為"細分曲面",其代表了所設計的3D建模對象的包絡/ 邊界,從而對該3D建模對象進行建模。因此說基網格"控制"細分曲面。細分算法可以是任意 已知的細分算法,例如四方網格情況下的Catmull-Clark細分算法,或三角形網格情況下的 循環細分算法。
[0051] 眾所周知,出于實用的目的,細分曲面實際上不由系統確定。作為替代,系統以參 數面片(典型的是NURBS(例如,Bgzier)曲面面片)的集合的形式確定細分曲面的近似值。例 如,系統存儲有用于執行將網格轉換成與細分曲面近似的參數面片集合的方案的程序。從 這個意義上說,該方案對應于基礎細分算法。在本方法的上下文中,這都意味著該方法運行 于支持細分曲面技術的系統上,被配置為/適應于針對用戶來定義基網格(如SlO處),以及 依據預定的細分方案(例如,Catmul I-Clark用于四方網格,或循環法用于三角形網格),基 于預定的轉換算法,自動輸出/計算/確定與真實的和理論的細分曲面近似的曲面,例如用 于CAD中已知的對曲面進行顯示/編輯/仿真或任何其它處理。所謂"近似",是指所定義(一 個正標量函數的積分)的在理論細分曲面與網格到曲面轉換算法的輸出之間的標量體積是 小于包絡該細分曲面的最小平行六面體邊沿框的體積的10%或5%的。
[0052]在本方法的情況下,系統的預定轉換算法是網格到NURBS曲面轉換算法,意味著該 基網格被轉換成與關聯于基網格的細分曲面近似的NURBS基本曲面/面片的集合(在隨后延 展性示出的例子中,該基網格是四方網格,細分方案是Catmu 11 -Cl ark細分方案)。所預定的 網格到NURBS曲面轉換算法可稱為"近似算子",可以記為PCCM( ·)。基網格Bo的變換/轉換 以下將寫作Sq = PCCM(Bo)。在一個例子中,算子PCCM( ·)是文獻US 7595799 B2(對應于EP 1750229 BI)和US 7400323 B2(其中US 7595799 B2描述了如何生成NURBS面片,而US 7400323 B2描述了如何改善面片之間的幾何連接的質量)中描述的網格到NURBS曲面轉換 算法,這些文獻通過引用并入本文,該算法被配置為:在除不規則(extraordinary)頂點附 近之外的任何地方(即,在所有NURBS面片對之間)都得到C 2的連續性,而在不規則頂點附近 得到的至少是C'但是預定的網格到NURBS曲面轉換算法可以是生成除在不規則頂點附近 之外(在不規則頂點附近連續性至少是C t3)彼此之間都具有C2連續性的未修整的面片的任意 其它已知的算子(Catmu 11-Clark細分收斂特性,參見"Recursively generated B-Spline surfaces on arbitrary topological meshes^ ?E.Catmull?J.Clark?Computer-Aided Design,第10卷第6期,1978年11月,第350-355頁)。出于完整性的考慮,需要注意的是,如已 知的,這些算子會執行初始數量的細分以便具有同質(homogenous)的網格(經常是兩個), 然后依據方程的求解,創建NURBS面片,該操作的復雜性基于所輸入的網格面的數量而遞 增。因此,這些算子與多分辨率網格(該網格帶有局部信息以修改預定的細分方案,從而增 加局部細節)至少當增加第二或第三級細分之外的信息包括多分辨率的設定時是不相容 的。
[0053]作為提示,如果頂點符合以下條件之一,頂點即可以被稱為是規則的(相對的,其 它頂點被稱為是不規則的):
[0054] ?該頂點不位于網格的獨立邊界(free border)上,并且被四個非銳邊沿(nonsharp edges) 包圍 (因此被四個面包圍 )。
[0055] ?該頂點位于網格的獨立邊界上,并且被兩個獨立邊沿和一個非獨立且非銳邊沿 包圍(因此被兩個面包圍)。
[0056] 還可以在文獻,尤其是US 7595799 B2(對應于EP 1750229 BI)和US 7400323 B2 中找到該定義。在Catmul I-Clark細分理論中規則頂點確保了最好的曲面質量。
[0057] 如本身已知的那樣,NURBS曲面由所謂的"控制點"的(2D)柵格定義,其具有"柵格" 的通常的拓撲定義,例如,具有若干(至少兩個)行和若干(至少兩個)列。貫穿整個方法,該 計算機系統根據預定的可逆函數確定(S20)屬于NURBS曲面并且對應于控制點的柵格的曲 面點的柵格。曲面點是在幾何上位于/屬于該曲面的點。在NURBS的情況下,直接的曲面柵格 是示例的Grgville點的柵格。實現曲面Grgville點與NURBS的控制點(通常在曲面本身之 外)之間一對一的對應的預定的可逆函數是從描述NURBS幾何結構的眾所周知的數學運算 中預先確定并得出的。出于完整性的考慮,這些數學運算仍然將在下文中作詳細描述。需要 注意,確定S20可以以任意方式實現,例如,作為后臺進程,在每次曲面及其控制點被修改 時,實時重新計算Gr6vi lie點。
[0058] NURBS曲面是一種廣泛應用于CAD的曲面,其通過3D空間中的數值被定義在2D空間 中:5(11,¥)4(1,7,2)。通過兩個節點(1〇1〇1:)向量和控制點的一個二維陣列以及取決于所使 用的CAD的軟件的其它可能數據來表征NURBS曲面。典型地,節點向量是浮點數值的一維陣 列。對控制點陣列可以進行索引。每個控制點是一個3D點,具有坐標x,y,z。在陣列中的位置 由兩個指標i和j來定義;其中,〇 < i<M,0 < j<N。被認為是Grgville參數的參數集可以從 節點向量算出,從而索引i或j的每個值可以與Gr6vilie參數(m,Vj)相關聯。傳統地,Gr6 Ville參數是節點向量的固定數量個連續值的若干個單元。該固定數量被稱為"度",對于節 點向量的每個維度(u或V)而言,該固定數量可能是不同的。總之,若干個度屬于表征NURBS 曲面的數據。更詳細的內容,Gerald Farin的文章"Curves and surfaces for Computer Aided Geometric Design",編輯Morgan Kaufmann,(2001),介紹了NURBS曲面的基礎。
[0059] 經典地,NURBS曲面由以下輸入所定義。
[0060] 1 · (n+l)(m+l)個控制點Pii E K3A e R3的柵格,{〇, · · ·,n},je {〇, · · ·,m}。
[0061] 2.兩個正整數p,q,其出于后續將要解釋的理由而被稱為"度"。
[0062] 3.第一有序系列的被稱為"u節點向量"的實數uQ<……<u P+n+1,使 得最先的P+1個值m是相等的,且最后p+1個值m也是相等的。
[0063] 4.第二有序系列的被稱為"v節點向量"的實數< Vj < vj+1 < . . . < vq+m+1,使 得最先的q+1個值W是相等的,且最后q+1個值W也是相等的。
[0064] 5· (n+1)(m+1)個權數 C0ijX)的柵格,其中,ie {〇,···,n},je {〇,···,m}。
[0065] 這些輸入定義了兩個B樣條基,分別記為,
和
樣條基函數和是分段多項式,分別具有度 數P和q。它們的具體定義對本發明而言沒有用處。冊1^5曲[
由以下有理參教仆忒宙々"
[0066]
[0067] 類似地,NURBS曲線C:[i0,ip+"+1] -R3由度數p的一系列的n+1個控制點Pi和權重Oi 來定義,包含在以下公式中。
[0068]
[0069]事實上,從數學觀點來看,NURBS曲面是兩個NURBS曲線的張量乘積。為了清楚起 見,主要用NURBS曲線而不是NURBS曲面來示例(在下面的附圖上)該方法。
[0070] 現在簡要討論Gr6vi lie點。
[0073] 圖5示出了NURBS曲線及其n+1 = 6個控制點Pi和Gr6vi 11e點Gi。
[0074]需要注意的是,預定轉換算法可包括用于局部修改或擦除NURBS結構(可能依據基 網格的局部特征,或依據添加到基網格的設計規格)的細化(例如,未披露的處理)。這例如 包括US 7952575 B2所說的區段的平滑化,或者US 2013293541 Al所說的特征線的定義。然 而,該曲面(其面積的 如果不是100%的話 至少90% )存在于NURBS的最后階段。需 要注意的是,該方法本身構成了細化。還需注意的是,這些細化與包含在當前方法中的局部 改變的設計規格之間的同時發生,可以以任意方式實現,這僅僅是實施方式的細節。還需注 意的是,該方法的實施方式可以以任何方式執行,以使得該細化之間的順序和處理的全部 序列是不相關的。這包含在這樣的事實中:就是說在S30所確定的NURBS曲面"對應于"執行 給定處理。在S30所確定的NURBS因此可以被提交給該進一步的細化過程,并且仍然對應于 在S30中所應對的主要處理。然而在一個示例中,基網格沒有配置其他的設計規格(除了S20 中的設計規格),即,基網格是"未加工的"。在另一個示例中,該同時發生的細化對整個曲面 的影響少于其面積的10%,或甚而少于其面積的5%,以使得對于補償面積,在S30確定的結 果與曾提到的處理之間,存在精確的匹配。
[0075]定義SlO由用戶執行。其結果是得到基網格,該基網格達到對該曲面的描述與點的 數量之間的良好權衡。這與純粹的細分不同。在SlO定義的基網格不同于(例如,依據相關的 細分方案)來源于另一網格的純粹細分的網格。如果這樣的細分由用戶在設計過程中調用, 那么至少一個從細分得到的頂點可被手動移動(即,直接定位一一例如,圖形上而言,由用 戶規定的拖-放)。總之,從零開始,定義SlO可以包括多個低于5或2的細分。這些細分允許對 細節的定義,也因此允許復雜設計,但是基網格是用戶設計的網格,因而它不會太復雜(相 對而言),也因而用以上提到的轉換算法種類對其進行轉換相對較快,并且能得到合理數量 的NURBS控制點。例如,考慮到3D建模對象的總長度L(例如,包絡該3D建模對象的最小平行 六面體邊界框的最大長度),在SlO中由用戶定義的用于表征3D建模對象的基網格的一條邊 沿的平均長度可以高于L的1%、L的5%或甚至是L的10%。這些特征一直保留到該方法最后 階段,這保留了用戶的意圖。
[0076] 現在討論定義S20。
[0077]定義S20還是由用戶執行。在這一點上,用戶輸入的數據可作為3D建模對象的附加 設計規格,保存于該模型中,因此該3D建模對象至少由基網格來定義(與對于系統來說是預 先確定的細分算法/曲面以及與如上述被記為PCCMO的預定算子相關),以及由2D圖像和在 細分曲面上雕刻該2D圖像的位置來定義。因此該定義S20對應于在基于特征的CAD系統中設 置一特征,和/或在基于歷史的CAD系統中設置一歷史設計操作,即,歷史樹的一個節點,這 些系統本身是已知的。2D圖像是任意類型的圖像。它可以是照片(例如,RGB的或灰度級的), 或者是用戶(同一用戶或者另外的用戶)畫的2D圖(例如,也是RGB的或灰度級的)。通常來 說,該2D表征了將被雕刻在最終設計的和/或制造的對象上的局部細節,例如一個logo。本 方法的目的是執行"雕刻"設計操作,其也像這樣由確定S30的結果來定義,并且從視覺上表 征了(當之后顯示由確定S30輸出的曲面時)將2D視角中包含的設計向細分曲面上的真實的 雕刻。然而,這對系統而言是內在的,為實施S30而(例如,依據用戶需求/用戶觸發)預先確 定的。用戶僅僅指定2D圖像應當被應用到哪個位置。用戶可以以任何方式指定細分曲面上 的這個位置,例如通過2D圖像和細分曲面之間的純粹同構關系。
[0078] 例如,基網格與細分曲面相關聯,系統被配置于計算其近似值(得益于算子PCCM ()),該方法可包括示出所述細分曲面(的近似值)。然后用戶可以圖形化地定義該位置。例 如,用戶可以將2D圖像的3d表征定位在細分曲面(基網格是3D的,2D圖像可以被移到包含3D 基網格的3D工作空間中)的任何地方上(附近),2D圖像的大小潛在地可以隨意增加或減少, 并且該系統可以執行預定的投影(2D圖像到曲面上,或曲面到2D圖像上)。用戶還可以指定 2D圖像的取向。用戶還可以指定該投影。任何容易使用的和圖形化的執行該定位的方式(相 當于將該2D圖像投影/附著/應用到細分曲面的表征上)都可以由該方法實現。
[0079] 用戶在S20處提供的位置在任何情況下都由系統解釋為細分曲面上的位置,也因 此會影響基網格或NURBS面片的基礎面。因此系統可將基網格的面和/或NURBS面片與該位 置關聯起來。事實上,預定轉換算法將基網格的面與所得到的NURBS面片關聯起來。因此,當 用戶把3D圖像定位在細分曲面上時,用戶實際上是將它定位在NURBS面片的子集上,從而定 位在基網格面的對應子集上。該關聯/影響的檢索可以以任何方式實現。該方法可用于向細 分曲面增加小細節,同時保存其整體形狀。首先,保存該曲面的拓撲結構。而且,初始細分曲 面(即,簡單轉換基網格的結果)中超過75%,或超過90%可以留著不修改,針對這樣來調整 2D圖像的大小(例如,在可能的擴展之后)。
[0080] 現在討論確定S30。
[00811該方法確定了NURBS曲面,該NURBS曲面不同于由預定網格到NURBS曲面轉換算法 (gp,PCCM()算子)所輸出的曲面(可被稱為"未加工的結果"或"未加工的NURBS/曲面"。在 S30所確定的NURBS實際上是與將形變映射應用在對基網格執行網格到NURBS曲面轉換算法 所得的結果上對應的曲面。因此,該形變映射(至少在概念上)修改了"未加工的結果",以用 2D圖像來雕刻該曲面。為此,通過定義,該形變映射包括針對所述未加工結果的位置提供的 位移向量,并不是任何位置,而是與雕刻2D圖像的位置對應的位置。基于2D圖像的對應的像 素值,精確計算該位移向量,從而使其的確是雕刻在細分曲面上的2D圖像。需要注意的是, 位移向量可以是空(即,不位移)。實際上,可以針對比2D圖像的雕刻位置更廣的范圍來定義 形變映射,例如,整個曲面,只要在適當的地方(尤其在不涉及雕刻的位置)位移向量為空即 可。這僅僅是一種實施方式。簡而言之,形變映射是一種函數,它指定了細分曲面的位置(進 而是基礎NURBS面片的位置,諸如其控制點,和/或基網格的面上的位置)的3D移動,該方法 實現了所述位置與2D圖像像素(例如,根據給定標準而保留的像素)之間的預定的關聯(或 者其計算,即,值是預定的,或者對其進行計算的方式是預定的,并且不取決于用戶的任何 進一步的輸入),該方法進一步實現了基于相關聯像素的3D移動值的預定計算。需要注意的 是,該3D動作的方向(或者其計算,即,值是預定的,或者對其進行計算的方式是預定的,并 且不取決于2D圖像或用戶的任何進一步輸入,而是例如僅僅取決于基網格)可以是預定的。
[0082] 位移向量可以利用形成雕刻特征的函數來以任何方式計算,只要其是基于2D圖像 的。圖像的像素值被映射到細分曲面(得益于定義步驟S20)的位置上,并由此映射到所考慮 的NURBS曲面的位置上。在一個例子中,該方法所預期的像素值是像素灰度值。換句話說,關 聯于2D圖像的像素的灰度值被確定,并用于計算位移向量。該2D圖像可以以灰度形式提供, 此時灰度值可以直接是像素值。2D圖像還可以以RGB形式提供,此時該方法使用任意預定的 RGB-灰度轉換算法。在兩種情況下,該方法都可以對所保留的值實施任何進一步的處理。
[0083] 在一例子中,位移向量的幅度(或大小)基于對應的灰度值而遞增。換句話說,所保 留的像素值的(灰度)值越高,該方法對未加工的曲面進行越多的修改(從幅度上說)。可以 實施任何遞增函數。在一例子中,該函數僅是指示函數(如果像素值高于一預定閾值,則位 移,否則不位移,"正位移"值和"不位移"值之間可能具有平滑化,用以避免突兀的轉換)。在 另一示例中,該函數是更細化的函數,例如線性函數。
[0084]用戶還可以進一步從預定的二元列表中選擇雕刻方向。通常,用戶手動將2D圖像 投影/附著到曲面上,如此前已解釋的那樣,然后用戶可選擇該位移是應當在投影的方向上 (即,從用戶到曲面)還是反方向上(即,從曲面到用戶)。可替換地,雕刻方向可以如以上提 到的那樣預先確定。這些都是可配置的特征,用于增加系統的用戶友好性。
[0085] 現在參考圖6到圖19,討論該方法的一個特定例子。
[0086] 如圖6的流程圖所示,該例子中,該方法實際上通過在S32處計算位移向量(也因 此,形變映射),以及并行地在S34處對被標示為Bo的基網格執行網格到NURBS曲面轉換算 法,來執行S30,然后示例的方法實際上在S36處,對S34的結果(記為So = PCCM(Bo))應用該形 變映射(記為刀)。
[0087]特別地,計算S32包括,根據Bo,首先確定(S320)對應于2D圖像的雕刻位置的第一 3D網格(B4 = Rn(B1))13該第一 3D網格(記為Β4),對應于Bo的一部分,在該部分處將根據在S20 的用戶設計規格來雕刻2D圖像。其可以對應于Bo的受定義S20影響的所有面(與S20定義的 位置相關的相鄰區域,其可以以任何預定的方式確定),并且可以是它的細分。需要注意的 是,也可以被選擇性地保留無影響的面的狹帶。
[0088]那么,計算S32包括:根據Β4,在Β4的法線方向上,基于2D圖像的對應的像素值,對Β4 的頂點進行位移,以確定(S322)第二3D網格(B5 (i) = B4(i) +diN( i))。換句話說,該方法考慮 基網格的受雕刻影響的部分,并且依據該雕刻圖像的像素值對其位置進行位移。按照網格 在頂點的法線方向來以預定方式計算位移方向(可以實施任何法線方向計算)。可以依據以 上的說明完成該計算,例如,像素灰度值線性地/按比例地/遞增地確定位移的幅度(方向是 法向的,取向(朝向用戶或相反)是用戶可選的或是預定的)。
[0089] 那么,針對S34的結果的位置,計算S32可以計算(S324)位移向量(Δ (i,j)=Ci,j (S5)-Ci,」(S4)),該位移向量(Λ (i,j) = Ci,」(S5)-Ci,」(S4))等于對B5執行網格到NURBS曲面轉 換算法所得的結果(S 5 = PCCM(B5))的對應控制點(Ci, j (S5))與對B4執行網格到NURBS曲面轉 換算法所得的結果(S4 = PCCM(B4))的對應控制點(Ci, j (S4))之間的3D位置差。在此,可計算 SjP S5以對其進行快速執行。但是可以考慮任何其它計算實施方式。
[0090] 基于圖6的特定示例執行起來尤其有效率,這得益于它所執行的特定計算方法。此 外,該示例確保了 PCCM()輸出的所需的連續性得以保持(除不規則頂點的相鄰區域外的任 何地方都是C2的連續性,在不規則頂點的相鄰區域得到的至少是事實上,與PCCM算子的 特征相關,該例子實現的特定代數確保了這種保持。
[0091] 如圖7所示,其描述了整體環境,輸入的數據是細分曲面的基網格和二維圖像。目 標在于在由基網格定義的曲面上雕刻2D圖像的細節。該雕刻的結果是得到局部形變。相對 于曲面定位該2-D圖像,以便定義圖像的細節將位于曲面上的哪里。輸出的數據是NURBS曲 面,體現了被雕刻的圖像。在雕刻細節之外,初始曲面的整體形狀并未改變。
[0092] 過程如下:
[0093] 1.通過使用初始基網格Bo,將輸入的細分曲面轉換為NURBS曲面So。
[0094] 2.通過使用初始基網格Bo和2D圖像,執行基網格的計算。這提供了 NURBS曲面SjP &。曲面S4是局部的未改變的形狀,曲面S5是局部的所雕刻的形狀。
[0095] 3.由NURBS曲面SjP S5,計算控制點偏差。
[0096] 4.通過向NURBS曲面So應用這些控制點偏差,來雕刻該2D圖像的細節。這樣可產生 所得的NURBS曲面Su
[0097]顯然,該方法保存了兩個世界(細分曲面設計和NURBS設計)中的最佳部分,意味著 不需要改變雕刻區域以外的形狀,即可將圖像的細節雕刻在細分曲面上。這準確捕獲了該 設計。
[0098]該例子的整個過程是完全自動化的,可以作為"雕刻"特征存儲在基于歷史的CAD 系統的數據結構中。輸入的是細分曲面和圖像,輸出的是雕刻后的NURBS曲面。在執行了雕 刻操作之后,細分曲面能夠被編輯,或者圖像定義也能被改變。通過重新進行該雕刻特征, 獲得對所得的曲面的修改版本。這允許了容易、快速地改變該設計。
[0099]盡管所得曲面是NURBS曲面,然而從用戶的觀點來看,功能性是細分曲面的功能 性。這是因為編輯是在輸入的細分曲面上執行的。所得的曲面的NURBS方面是一種不限制編 輯能力的處理該結果的方式。
[0100] 現在結合更多實施細節來討論該示例。
[0101]輸入的數據和算子以以下方式細化。由其基網格Bo定義的細分曲面近似于NURBS 曲面So。圖8示出了表征花瓶的3D建模對象的基網格Bo。圖9示出了NURBS曲面So(其被示出給 最終用戶,例如,消費者)。
[0102] 包括圖像的平面記為P,其設計規格由本方法連續確定(例如,更新)。其由點X0和 兩個正交的法向量U,V定義。平面上的任意點可以寫成Xo+uU+vV,其中(ω,V) e R2。平面P的位 置定義了圖像將被雕刻在曲面So的哪里。依據平面P的U,V向量定義形變映射AR2 。其 捕獲與每個圖像點相關聯的灰度級,d(u,v)=0意味著點(u,v)處沒有圖像細節。圖像被包 括在矩形I = [Umin,Umax] X [Vmin,Vmax]中,意味著在這個矩形外面d(U,V)=0。圖10示出了平 面P上的矩形I,和它有關于曲面So的定位。函數d可以是遞增函數,這對于技術人員而言是 個實施細節。
[0103] 示例的方法可以實現從3D空間到平面P的平整化操作,平面P由映射4戶定 義。映射Q是否是線性的是不相關的。從3D空間正交投影到平面P是由線性映射?尸定 義的,也即:
[0104] H(X)= Xo+<X-Xo, U>U+<X-Xo, V> V
[0105] 從網格Mi到更精細網格Mi+1的網格細化被記為R,意味著Mi+1 = R(Mi)。典型地,算子R 是Catmull-Clark細分步驟。得到NURBS曲面S的控制點Pi, J^BSPid = Cid(S)O
[0106] 現在描述基網格計算的主要階段。圖11的圖表示出了整個過程,并構成了圖7的方 塊圖"基網格計算"的細節。
[0107] 第一步是識別將在其上雕刻圖像的Bo面。令B1為從Bo提取得到的基網格,如圖12所 不。
[0108] 該網格通過B2 = Q(B1)操作而平整化到平面P,生成體現了相同的拓撲結構的平坦 網格B2,如圖13所示。
[0109] 現在,第一 3D網格(B4)的確定S310不僅包括提取基網格中對應于2D圖像雕刻位置 的子網格也,如前所示地,還可包括此后的將子網格B 1細分預定倍數n,如前所述。這實現了 對2D圖像細節的調整,以及更精煉的雕刻。
[0110]預定倍數η可以由用戶(交互地)定義。然而它也可以基于與2D圖像的細節水平相 關聯的預定標準而遞增。在后者的情況下,可以完全自動地通過評估該預定標準來執行η的 確定。
[0111] 接下來提供該自動化的例子。
[0112] 網格出將被細分,直到該網格的大小符合圖像的細節。這產生網格B3 = Rn (B2 ),其 中整數η是細分的倍數,如圖14所示。相同的細分過程B3 = Rn(B2)然后被應用到非平坦基網 格B1,即Β4 = Rn(B1 ),如圖15所示。網格Β4和B3具有相同的拓撲結構。網格B3是平坦的,網格Β4 是不平坦的。
[0113] 通過確保足夠數量的細分點以表示輸入的圖像,尤其在非空的形變區域,來估算 細分級數η:
[0114] -根據出容易估算兩個相鄰細分點之間的平均長度。
[0115]-根據輸入的圖像,腐蝕類的算法能夠計算圖像空間中所有非空形變區域的平均 厚度(參考"The Scientist and Engineer's Guide to Digital Signal Processing'', Steven ff.Smith)〇
[0116]然后n可以首先被選擇(為例如最小整數,其確保)使得比值 大于1。該標準對用戶而言是個良好的指標。
[0117]對于每個整數i,令Xi= (Xi,yi,Zi)為平坦網格B3的第i個點B 3⑴的3D坐標。在平面 P的局部2D軸系統中,該點的2D坐標是(m,Vi),其中m =〈Xi-X〇,U>U,Vi =〈Xi-X〇,V>V。令di = d (m,Vi)為平面P在點(m,Vi)處的形變映射的值。 網格B4現在被變為體現了相同的拓撲結構的另一網格B5,并且被修改如下。對于每 個整數i,令N(i)為按照網格irkBi)、通過使用B4(i)的鄰近點計算的法向量。通過對η-I級 的每個細分單元周圍的法線取平均,計算向量N(i)。然后,網格B 5的第i個點由B5(i)=B4(i) +cUN(i)定義。這在圖16中示出。
[0119]目前為止,所有計算都是在網格上執行的。現在,是時候翻譯控制點方面的信息 了,因為,最終,輸出的是NURBS曲面。令S4為與由網格B4定義的細分曲面近似的NURBS曲面, 即S4 = PCCM(B4),如圖17所示。類似地,令S5為與由網格出定義的細分曲面近似的NURBS曲 面,即S 5 = PCCM(B5),如圖18所示。
[0120] 必須理解的是,S5不是所得曲面的局部形狀。&的邊界不適配初始曲面So。
[0121] 為了報告So的形變,由S4和S5計算新的函數Δ。
[0122] 通過構造:
[0123] -除了不規則頂點的相鄰區域之外,來自S4(相應的是S5)的NURBS面片互相之間是 C 2,在不規則頂點的相鄰區域它們至少是Ct^根據定義PCCM( ·))
[0124] -形變區域中的每個基網格面可以鏈接到兩個NURBS面片:一個在S4,一個在&。然 而,這兩個面片通常不具有相同的節點向量,并且在定義△之前,可以通過節點插入或度數 提升(參見 "The NURBS Book",L· Piegl和T ·Wayne,Springer,第二版,2013年)而針對每對 面片均勻化其向量。
[0125] 控制點偏差的映射/,_;?Δ(?,_/)由SdPS4控制點的差來定義:Δ (i,j)=Ci,j(S5)-C^(S4)13該形變映射將僅被應用于So上的形變區域面片的子集上。在此,這些面片的節點向 量大體上仍然與A的節點向量不一致,因此它們也需要被均勻化。
[0126] 一旦完成,通過對有關的NURBS曲面的控制點應用偏差Δ (i,j),獲得初始曲面S0 的形變,生成輸出曲面31。通過應用△,來保留S1的幾何連續性。如果Φ表征由△的控制點和 So的均勻化的節點向量計算出的形狀,那么除了不規則頂點的相鄰區域外,Φ的面片互相 之間是C 2,在不規則頂點的相鄰區域它們至少是(Λ因此S1可以表達為線性組合:51 = 5〇+&-54、5〇、54和55擁有相同的參數化(它們的面片共享相同的節點向量),它們幾乎在所有地方 都是C 2A1*是如此。正如已經提到的,該方法可以在任何必要的地方實現上述合適的均勻 化(如眾所周知的,并且解釋在參見"The NURBS Book",L.Piegl和T.Wayne,Springer,第二 版,2013年)。
[0127] 圖19示出了最終結果。
[0128] 圖20至圖26示出了在實際案例中該方法的應用。
[0129] 圖20示出了不同紋理,圖21示出了將這些紋理應用于平行六面體3D建模對象(由 基礎基網格來建模,該基礎基網格沒有以圖21的模式向用戶示出,在該情況中其可以是很 簡單的)的頂面上的結果,得益于該方法。可見,該方法可用于在平面上鮮明地雕刻紋理。圖 22示出了吹風機,在它們的前面上雕刻有圖案。圖24示出了在平面上和在剃須刀柄上雕刻 圖23所示圖案的結果。圖25示出了完整設計的剃須刀,帶有雕刻于其上的所述圖案。圖26示 出了用該方法在3D建模對象264上雕刻標志260和圖案/浮雕262的結果(對象264也由基礎 基網格來建模,該基礎基網格沒有以圖21的模式向用戶示出)。
【主權項】
1. 一種計算機實現的用于設計3D建模對象的方法,所述方法包括w下步驟: ?由用戶定義(S10)與細分曲面W及相應的預先確定的網格到NURBS曲面轉換算法 (PCCM( ·))相關的基網格(Bo),所述細分曲面表征所述3D建模對象; ?由所述用戶定義(S20)2D圖像和用于在所述細分曲面上雕刻所述2D圖像的位置;W 及 ?確定(S30)與將形變映射(z',yH^Δ化y))應用(S36)在對所述基網格執行(S34)所述 網格到NURBS曲面轉換算法所得的結果(S〇 = PCCM(B〇))上對應的NURBS曲面(Si),所述形變 映射包括針對對所述基網格執行(S34)所述網格到NURBS曲面轉換算法所得的結果的位置 提供的位移向量,所述位置與所述用于雕刻所述2D圖像的位置對應,所述位移向量是基于 所述2D圖像的對應像素值來計算(S32)的。2. 根據權利要求1所述的方法,其中,所述方法包括計算(S32)所述位移向量,包括: ?從所述基網格(Bo)確定(S320)與所述用于雕刻所述2D圖像的位置對應的第一 3D網格 (B4=r(Bi)); ?通過基于所述2D圖像的對應像素值在所述第一 3D網格的法線方向位移所述第一 3D 網格的頂點,來從所述第一 3D網格確定(S322)第二3D網格(B5(i)=B4(i)+diN(i));W及 ?針對對所述基網格執行(S34)所述網格到NURBS曲面轉換算法所得的結果的位置,計 算(S324)位移向量(/\。〇')=(:1,^55)-(:1,^54)),該位移向量等于對所述第二30網格執行 所述網格到NURBS曲面轉換算法所得的結果(Ss = PCCM化))的對應控制點化,j(Ss))與對所 述第一 3D網格執行所述網格到NURBS曲面轉換算法所得的結果(S4 = PCCM(B4))的對應控制 點(Cl,如4))之間的3D位置差。3. 根據權利要求2所述的方法,其中,確定(S320)所述第一3D網格(B4 = r(Bi))包括:提 取所述基網格中的與所述用于雕刻所述2D圖像的位置對應的子網格(Bi),W及在之后W預 先確定的倍數(η)細分所述子網格(Bi)。4. 根據權利要求3所述的方法,其中,所述預先確定的倍數(η)是由所述用戶定義的和/ 或是基于與所述2D圖像的細節水平有關的預先確定的標準而遞增的。5. 根據權利要求1-4中的任一項所述的方法,其中,所述2D圖像的對應像素值是像素灰 度值。6. 根據權利要求5所述的方法,其中,位移向量的幅度是基于對應的所述灰度值而遞增 的。7. 根據權利要求1-6中的任一項所述的方法,其中,所述用戶進一步從預先確定的二元 列表中選擇雕刻方向。8. -種3D建模對象,由權利要求1-7中的任一項所述的方法設計而成。9. 一種計算機文件,包括對權利要求8所述的3D建模對象的設計規格。10. -種制造產品的方法,包括根據權利要求1-8中任一項所述的方法對3D建模對象的 設計、W及基于所述設計對所述產品的制造。11. 一種計算機程序,包括執行權利要求1-8中的任一項所述的方法的指令。12. -種數據存儲介質,其上記錄有根據權利要求11所述的計算機程序。13. -種CAD系統,包括禪合到GUI和存儲器的處理器,所述存儲器上記錄有根據權利要 求11所述的計算機程序。
【文檔編號】G06T17/30GK105844711SQ201610150690
【公開日】2016年8月10日
【申請日】2016年2月2日
【發明人】R·邁松納夫
【申請人】達索系統公司