專利名稱:用于設計幾何三維建模對象的方法
技術領域:
概括地說,本發(fā)明涉及計算機程序和系統(tǒng)的領域,具體地說,本發(fā)明涉及用于設計幾何三維建模對象的方法、系統(tǒng)和程序。
背景技術:
針對對象的設計、工程和制造,市場上提供了多種系統(tǒng)和程序。CAD是計算機輔助設計的縮寫,例如,其與用于設計對象的軟件解決方案有夫。CAE是計算機輔助工程的縮寫,例如,其與用于仿真未來產品的物理行為的軟件解決方案有夫。CAM是計算機輔助制造的縮寫,例如,其與用于規(guī)定制造mes和操作的軟件解決方案有夫。在這樣的計算機輔助設計系統(tǒng)中,圖形用戶界面在技術的效率方面扮演重要的角色。這些技術可以嵌入在產品生命周期管理(PLM)系統(tǒng)中。PLM是指ー種商業(yè)策略,其幫助公司在擴展的企業(yè)的概念中從產品構思到其生命結束共享產品數據,應用公共過程,并利用公司知識來開發(fā)產品。 DassaultSystems 提供的(商標為 CATIA、EN0VIA和 DELMIA 的)PLM解決方案提供了工程中心(其對產品工程知識進行組織)、制造中心(其管理制造工程知識)和企業(yè)中心(其使企業(yè)集成和連接進入到工程和制造中心)。該系統(tǒng)一起給出了開放對象模型鏈接產品、過程、資源,以實現動態(tài)、基于知識的產品生成和決策支持,后者驅動優(yōu)化的產品定義、制造準備、生產和服務。對象的設計指代在生成對象的實體模型之前,生成該對象的三維形狀的過程。例如,當思考ー種新車時,ー個重要的任務就是生成該車的車體。通常,新對象及其形狀的生成以圖紙階段開始,其中在該階段,對象的設計者繪制出該對象。這種繪制包括兩個步驟。第一步是草圖步驟,在該步驟,生成快速實現的并不是_在作為完成的作品的徒手畫。第二步是示蹤步驟,在該步驟,根據草圖設計該對象的定形圖。草圖步驟通常在紙上進行,而示蹤步驟則使用專用軟件來執(zhí)行。Dassault “Systems提供的軟件Freestyle Sketch Tracer (商標)允許將設計師的作品(例如,在草圖步驟完成的2D繪圖)集成為3D格式,作為3D虛擬實體模型的基礎。該產品提供了幫助設計者將2D數據轉換成3D數據的直觀工具箱設計者首先在3D空間中定位和依比例調節(jié)2D圖像,隨后在草圖上繪制幾何形狀。在實現時,設計者至少使用放置在3D空間中的對象的2D前視圖和2D側視圖,并從前視圖轉換到側視圖(以及相反操作)以便在3D空間中放置點。隨后,根據這些點計算曲線和曲面,直到推斷出實體為止。但是,用于設計三維建模對象的該方法具有ー些缺陷。首先,由于草圖仍然在圖紙上進行并需要將圖導入軟件,所以不能綜合草圖步驟和示蹤步驟。第二,這些導入的圖只是2D圖,因此要從這些導入的2D圖推斷幾何曲線。第三,3D建模對象的生成需要很大的計算資源,這是由于計算幾何曲線時需要一些計算。在該背景下,仍然需要用于設計幾何三維建模對象的改善方法
發(fā)明內容
根據ー個方面,因此本發(fā)明提供了一種用于設計三維建模對象的計算機實現的方法,其中該方法包括下面的步驟-與屏幕的用戶交互;-定義與所述用戶交互相對應的筆畫;-將所述筆畫離散化為ー組點;-將所述ー組點投影到三維場景中的至少ー個支持;-根據所投影的一組點和所述至少ー個支持,構造所述三維建模對象。該方法可以包括下面中的一個或多個步驟-通過下面操作構造所述三維建模對象的可視化的步驟 針對所投影的一組點中的每ー個點,計算至少兩個偏移點,偏移點是位于所述至少ー個支持上的并與所述每ー個點間隔開的點;以及計算所計算得到的至少兩個偏移點所勾畫的表面,所述曲面包括所投影的ー組點;所述計算至少兩個偏移點包括計算鏈接所投影的一組點中的點的折線;針對所投影的一組點中的姆ー個點,計算偏移向量d = a£),其中a是系數,g是與所述支持垂直的單位向量,/是鏈接構成所述折線的所述ー組點中的兩個點的線所定義的向量,和!:將所述每ー個點作為共同原點;根據所述偏移向量來確定所述至少兩個偏移點;以及將所確定的所述至少兩個偏移點投影到三維場景中的所述至少ー個支持;-將計算得到的偏移勾畫的所述計算得到的表面進行棋盤化的步驟;-構造可視化的步驟還包括應用著色器(shader)以渲染所述計算得到的表面;-使用所述三維場景中的至少另ー個支持來重復所述方法的步驟;本發(fā)明還提出了一種用于設計三維幾何建模對象的計算機實現的方法,所述方法包括下面步驟-提供根據本發(fā)明的方法設計的一組三維建模對象;-提取所提供的一組三維建模對象中的點;-根據所提取的點計算幾何光滑曲線;-根據所述幾何光滑曲線構造三維幾何建模對象。用于設計三維幾何建模對象的方法可以包括下面中的ー個或多個-在所述提取的步驟,根據所述點被投影到其上的支持來提取所述點;-所述提取的步驟還包括-與屏幕的用戶交互;-定義與所述用戶交互相對應的筆畫;-在所提取的點中獲取所提供的一組三維建模對象中的一個三維建模對象以及所獲取的所述ー個三維建模對象的至少ー個支持;-將與所述用戶交互相對應的筆畫離散化成ー組點;-將所述一組點中的點投影到所述至少一個所獲取的支持;-所述獲取的步驟還包括獲取離從光標開始的選取路徑最近的三維建模對象;
-所述選取路徑包括從所述光標投射的光線;-針對每ー個提供的三維建模對象,重復所述提取、計算和構造的步驟;-當用戶與屏幕交互時,重復所述提取、計算和構造的步驟。本發(fā)明還提出了ー種包括供計算機執(zhí)行的指令的計算機程序,所述指令包括用于執(zhí)行本發(fā)明的方法的単元。本發(fā)明還提出了一種在其上記錄有上面的計算機程序的計算機可讀存儲介質。
現在通過非限制性示例的方式,并參見附圖來描述本發(fā)明的實施例,其中-圖I示出了該方法的示例的流程圖; -圖2示出了圖形用戶界面的示例;-圖3示出了客戶端計算機系統(tǒng)的示例;-圖4-圖12示出了根據本發(fā)明用于設計幾何三維建模對象的方法的例子;-圖13-圖16示出了根據本發(fā)明用于設計三維建模對象的方法的例子。
具體實施例方式提出了ー種用于設計三維建模對象的計算機實現方法。該方法包括用戶與屏幕交互的步驟。此外,該方法還包括定義與該用戶交互相對應的筆畫的步驟。此外,該方法還包括將所述筆畫離散化為ー組點的步驟。此外,該方法還包括將所述ー組點投影到三維場景中的至少ー個支持的步驟。此外,該方法還包括根據所投影的一組點和所述至少ー個支持,構造所述三維建模對象的步驟。該方法用于設計三維建模對象。“設計三維建模對象”指示作為精心制作三維建模對象的過程的至少一部分的任何動作或者動作系列。因此,該方法可以包括通過亂涂(scratch)來生成三維建模對象。或者,該方法可以包括提供先前生成的三維建模對象,隨后修改該三維建模對象。該方法可以包括在用于設計三維幾何建模對象的計算機實現方法中。該方法包括提供根據用于設計三維建模對象的方法所設計的一組三維建模對象的步驟。該方法還包括提取所提供的一組三維建模對象中的點的步驟。該方法還包括根據所提取的點計算幾何光滑曲線的步驟。該方法還包括根據該幾何光滑曲線構造三維幾何建模對象的步驟。用于設計三維建模對象的方法使得復雜的三維建模對象的構造更容易和更快速,并高度地減少了用于構造三維建模對象所需要的計算資源(例如,CPU、存儲器)。用于設計三維建模對象的方法還使得用于設計三維幾何建模對象的方法更容易和更快速,并因此增加設計過程的生產率。該方法是計算機實現的。這意味著該方法的步驟(或者基本所有步驟)由至少ー個計算機執(zhí)行。在示例中,可以通過用戶-計算機交互,來執(zhí)行該方法的步驟中的至少ー些的觸發(fā)。所需要的用戶-計算機交互的水平可以取決于預知的自動化水平,其與實現用戶的愿望的需求達到平衡。在示例中,該水平可以是用戶規(guī)定的和/或預先規(guī)定的。例如,與屏幕交互的步驟是用戶干預的步驟的ー個示例。
該方法的計算機實現的典型示例是使用某種系統(tǒng)來執(zhí)行該方法,其中該系統(tǒng)包括適合于實現該目的的圖形用戶界面(GUI)。GUI與存儲器和處理器相耦合。存儲數據庫的存儲器僅僅是適合于這種存儲的任何硬件。該系統(tǒng)改善了三維建模對象和三維幾何建模對象的設計。因此,該系統(tǒng)可以由包括專家設計者在內的各種各樣的用戶使用。例如,通過GUI(其包括用戶與其交互的屏幕)來執(zhí)行涉及該用戶的步驟,而在不涉及GUI的情況下,通過存取存儲器的處理器來執(zhí)行完全計算機化的步驟。存儲器中存儲的信息(S卩,三維參數形狀)可以以數據庫形式進行存儲。通過“數據庫”,其意味著針對搜索和獲取而組織的任何數據(即,信息)集合。當存儲在存儲器上吋,數據庫允許計算機進行快速的捜索和獲取。實際上對數據庫進行結構化,以結合各種數據處理操作來促進數據的存儲、獲取、修改和刪除。數據庫可以包括能分解成記錄的文件或文件集,每ー個記錄包括ー個或多個字段。字段是數據存儲的基本単位。用戶可以主要通過查詢來獲取數據。使用關鍵字和排序命令,用戶可以對多條記錄中的字段進行快速地捜索、重新排列、組合和選擇,以根據使用的數據庫管理系統(tǒng)的規(guī)則,獲取或生成關于數據的特定 聚合的報告。在所述方法的情況下,數據庫可以包括用于設計三維幾何建模對象的一組三維建模對象。當然,該數據庫可以存儲根據該方法設計的三維幾何建模對象。所述方法和系統(tǒng)通常對建模對象進行操作。建模對象是由存儲器中存儲的數據規(guī)定的任何對象。通過擴展,“建模對象”的表述指示數據自身。根據系統(tǒng)的類型,可以通過不同種類的數據來規(guī)定建模對象。CAD系統(tǒng)是至少適合于基于建模對象的圖形表示來設計該建模對象的任何系統(tǒng),例如CATIA。因此,規(guī)定CAD建模對象的數據包括允許建模對象的表示的數據(例如,包括諸如空間中的相對位置的幾何數據)。CAD建模對象還稱為幾何建模對象,三維CAD建模對象還稱為三維幾何建模對象。例如,在具有面或表面的某些情況下,CAD系統(tǒng)可以使用邊緣或線來提供CAD建模對象的表示。線、邊緣或表面可以用各種方式來表示,例如,非統(tǒng)一有理B樣條曲線(NURBS)。具體而言,CAD文件可以包含根據其可以生成幾何形狀的規(guī)范,其中幾何形狀則允許要生成的表示。建模對象的規(guī)范可以存儲在単一 CAD文件或者多個文件中。表示CAD系統(tǒng)中的建模對象的文件的一般大小針對每一部件在一兆字節(jié)的范圍之內。通常,建模對象可以是數千部件的集合。CAD系統(tǒng)還可以使用基于像素的幾何結構來提供建模對象的表示。基于像素的幾何結構建模對象(下文稱為建模對象)使用像素的模式來對像素進行排序。線、邊緣或者表面可以用基于像素的幾何結構來表示。具體而言,CAD文件包含根據其可以生成像素的規(guī)范,其中像素則允許要生成的表示。建模對象的規(guī)范可以存儲在単一 CAD文件或者多個文件中。應當理解的是,基于像素的幾何建模對象是不具有用數學公式規(guī)定的屬性的對象,其與幾何建模對象相反。該系統(tǒng)還可以是CAE和/或CAM系統(tǒng),CAD建模對象還可以是CAE建模對象和/或CAM建模對象。事實上,CAD、CAE和CAM系統(tǒng)并不是彼此排斥的,這是由于建模對象可以通過與這些系統(tǒng)的任意組合相對應的數據來表示。在CAD的背景下,建模對象通常是3D建模對象,例如表示諸如部件或者部件的集合的產品,或者可能的產品的集合。通過“3D建模對象”,其意味著由允許其3D表示的數據建模的任何對象。3D表示允許從所有角度對部件的觀察。例如,3D建模對象(當3D表示吋)可以圍著其任何軸、或者圍著顯示該表示的屏幕中的任何軸來處理和轉動。這明顯地不包括沒有3D建模的2D圖標。3D表示的顯示有助于設計(S卩,増加設計者統(tǒng)計上完成他們任務的速度)。由于產品的設計是制造過程的一部分,因此這加速了エ業(yè)中的制造過程。CAD系統(tǒng)可以是基于歷史的。在該情況下,還通過包括幾何特征的歷史的數據來規(guī)定幾何建模對象。幾何建模對象事實上可以由物理人(即,設計者/用戶)使用標準建模特征(例如,擠壓、旋轉、切割和/或弄圓等等)和/或標準曲面特征(例如,掃描、混合、傾斜、填充、變形、平滑等等)來設計。支持這種建模功能的很多CAD系統(tǒng)是基于歷史的系統(tǒng)。這意味著設計特征的生成歷史一般情況下是通過非循環(huán)數據流來保存的,所述非循環(huán)數據流通過輸入和輸出鏈路將所述幾何特征鏈接在一起。該基于歷史的建模范例自80年代開始就是公知的。通過兩種持久數據表示來描述幾何建模對象歷史和B-rep (S卩,邊界表示)。B-rep是在歷史中規(guī)定的計算的結果。當表示幾何建模對象時,計算機的屏幕上顯示的部件的形狀是B-rep (的棋盤格)。該部件的歷史是設計意圖?;旧?,該歷史收集關于該幾何建模對象經歷的操作的信息。B-rep與該歷史一起存儲,以使顯示復雜部件更容易。該歷史 可以與B-rep —起保存,以便允許根據設計意圖來進行部件的設計改變。通過PLM系統(tǒng),其意味著適合于對表示物理制造產品的建模對象進行管理的任何系統(tǒng)。在PLM系統(tǒng)中,建模對象因此用適合于制造物理對象的數據來規(guī)定。一般情況下,這些可以是維度值和/或公差值。對于對象的正確制造來說,事實上具有這些值更好。通過CAE系統(tǒng),其意味著適合于幾何建模對象的物理行為的分析的任何系統(tǒng)。因此在CAE系統(tǒng)中,通過適合于這種行為的分析的數據來規(guī)定建模對象。一般情況下,這可以是ー組行為特征。例如,可以通過指示門繞著某個軸旋轉的數據來規(guī)定與門相對應的建模對象。圖2示出了該系統(tǒng)的⑶I的示例,其中該系統(tǒng)是CAD系統(tǒng)。⑶I 2100可以是典型的類CAD界面,其具有標準的菜單欄2110、2120以及底部和側面工具欄2140、2150。這些菜單和工具欄包含一組用戶可選擇的圖標,每ー個圖標與ー個或多個操作或功能相關聯,如本領域所已知的。這些圖標中的一些與軟件工具相關聯,其中這些軟件工具用于對⑶12100中顯示的3D建模對象2000進行編輯和/或工作??梢詫⑦@些軟件工具分組成工作臺。每ー個工作臺包括軟件工具的ー個子集。具體而言,這些工作臺中的ー個是編輯工作臺,其適合于對建模產品2000的幾何特征進行編輯。在操作中,例如,設計者可以預先選擇對象2000的一部分,隨后通過選擇適當的圖標來發(fā)起操作(例如,改變維度、顔色等等)或者編輯幾何約束條件。例如,典型的CAD操作是對屏幕上顯示的3D建模對象進行沖壓或者折疊的建摸。例如,⑶I可以顯示與所顯示的產品2000有關的數據2500。在圖2的示例中,數據2500 (其顯示成“特征樹”)及它們的3D表示2000與包括制動鉗和碟的制動組合有夫。此外,該⑶I還可以顯示各種類型的圖形工具2130、2070、2080,以便例如有助于對象的3D定向,觸發(fā)對于編輯的產品的操作的仿真,或者繪制所顯示的產品2000的各種屬性。光標2060可以由觸覺設備進行控制,以允許用戶與圖形工具進行交互。圖3示出了一種客戶端計算機系統(tǒng),例如,用戶的工作站。該客戶端計算機包括連接到內部通信總線1000的中央處理單元(CPU) 1010、也連接到該總線的隨機存取存儲器(RAM) 1070。該客戶端計算機還提供有圖形處理單元(GPU)1110,后者與連接到所述總線的視頻隨機存取存儲器1100相關聯。在本領域中,視頻RAM1100還稱為幀緩沖器。大容量存儲設備控制器1020管理對于大容量存儲器設備(例如,硬盤1030)的存取。適合于確實包含計算機程序指令和數據的大容量存儲器設備包括所有形式的非易失性存儲器,舉例而言,其包括半導體存儲器設備(例如,EPROM、EEPROM和閃存設備);諸如內部硬盤和移動硬盤之類的磁盤;磁光盤;CD-R0M盤1040。前述中的任何ー個都可以由專門設計的ASIC (專用集成電路)進行補充,或者并入到專門設計的ASIC中。網絡適配器1050管理對于網絡1060的接入。該客戶端計算機還可以包括諸如光標控制設備、鍵盤等等之類的觸覺設備1090。在客戶端計算機中使用光標控制設備,以允許用戶選擇性地將光標放在顯示器1080上的任何期望位置,如參照圖2所提及的。此外,光標控制設備允許用戶選擇各種命令,輸入控制信號。光標控制設備包括用于向系統(tǒng)輸入控制信號的多種信號生成設備。一般情況下,光標控制設備可以是鼠標,鼠標的按鈕用于生成信號。計算機程序可以包括計算機的指令,這些指令包括用于使上面的系統(tǒng)執(zhí)行上面的 方法的単元。本發(fā)明可以例如用數字電子電路來實現,或者用計算機硬件、固件、軟件或者其組合來實現。本發(fā)明的裝置可以用確實體現在機器可讀存儲設備中以便由可編程處理器執(zhí)行的計算機程序產品來實現;本發(fā)明的方法步驟可以由執(zhí)行指令程序以便通過對輸入數據進行操作并生成輸出來執(zhí)行本發(fā)明的功能的可編程處理器來執(zhí)行。本發(fā)明可以有利地以ー個或多個計算機程序來實現,其中所述ー個或多個計算機程序可以在包括至少ー個可編程處理器的可編程系統(tǒng)上執(zhí)行,以便從數據存儲系統(tǒng)、至少一個輸入設備接收數據和指令,向數據存儲系統(tǒng)、至少ー個輸出設備發(fā)送數據和指令。應用程序可以用高級過程語言或面向對象編程語言來實現或者用匯編語言或機器語言來實現(如果期望的話);在任何情況下,該語言可以是編譯語言或解釋語言。現參見圖1,描述了用于設計三維幾何建模對象的方法。在步驟SlOO到S150,執(zhí)行用于設計三維建模對象的方法。三維建模對象通過作為像素(圖像元素)的數據來表示。將這些像素排列在一起,構成三維場景中的模式。例如,光柵圖形圖像(其還稱為位圖)是表示像素的通常矩形ニ維網格的數據結構。光柵圖像位對位地與屏幕上顯示的圖像相對應。在本發(fā)明中,三維建模對象包含的規(guī)范是像素,并且根據該規(guī)范來生成像素。三維建模對象的規(guī)范允許在3D場景中表示該三維建模對象。重要的是,3D建模對象的屬性不用數學公式來規(guī)定。在步驟S100,用戶與屏幕進行交互。一般情況下,用戶交互在屏幕區(qū)域上進行動作。這可以直接實現,例如,當屏幕是敏感的(例如,單觸摸或多觸摸屏),用戶在該屏幕上施加壓力,或者間接實現,例如通過使用觸覺設備(如,鼠標或者用戶可以在其上應用觸摸筆的觸摸板)。這還可以通過在屏幕上指示激光或者與屏幕交互的任何其它方式來實現。通過觸摸板或者敏感屏幕的用戶交互,使用戶交互更加栩栩如生(即,更類似于專家設計者在紙上設計對象的傳統(tǒng)構思階段)。用于設計3D建模對象的栩栩如生方法是ー種改進,這是由于其幫助專家設計者使用CAD系統(tǒng)。因此,設計更容易。隨后,在步驟S110,規(guī)定與所述用戶交互相對應的筆畫(stroke)。通過與屏幕的用戶交互,用戶激活屏幕中的ー些像素。這些像素可以用筆畫來翻譯,如本領域所公知的。例如,如果通過指向設備或者通過觸摸筆來執(zhí)行用戶交互,則激活的像素與該指向設備或觸摸筆的位置相對應??梢詫⑦@些激活的像素動態(tài)地顯示在屏幕上。這些激活的像素可以用筆畫來翻譯。規(guī)定筆畫通常意味著在屏幕上定位視覺地形成一條連續(xù)的線的位置。這些位置可以真實地顯示。例如,這可以通過對屏幕上激活的像素中的至少ー些像素的位置進行跟蹤來實現。因此,在筆畫是從用戶通過用戶交互勾畫的內容中推導出來的意義上來說,筆畫與用戶交互相對應。因此,在某種意義上,用戶通過用戶交互來勾畫該筆畫?,F參見圖4,表示通過用戶交互獲得的筆畫400??梢韵蛴脩麸@示該筆畫,例如,在屏幕上,或者不在屏幕上。返回參見圖1,在步驟S120,將該筆畫離散化成ー組點。對筆畫進行離散化意味著,例如通過將筆畫減少到稱為“筆畫點”的多個點,對筆畫進行采樣,形成一組點或者ー組筆畫點。由于筆畫是屏幕上的ー組位置,因此對筆畫進行離散化意味著將這ー組位置減少為單獨的筆畫點(即,減少該組位置的數量)。
現參見圖5,將圖4中所表示的筆畫離散化為ー組點,例如,點402。接著,在圖I的步驟S130,將該組點投影到三維場景中的至少ー個支持上。該支持可以是用于接收投影的點的幾何實體(可視或不可視)。該支持可以充當為“筆畫點”的基石。例如,所述支持可以是任何種類的表面。該表面可以是平面(例如,屏幕平面),或者曲形表面(例如,球體)或者任何其它制圖表面。事實上,與屏幕平面不相同的制圖表面可以嵌入在屏幕(的設計區(qū)域)中。換句話說,所述支持是三維空間(例如,3D場景)中的幾何實體。應當理解的是,ー些支持可以處于3D場景中。這些支持形成可以在其上投影該組點的至少ー個表面。將所述ー組點投影在支持上。對所述一組點進行投影意味著對于“筆畫點”應用某種變換,使得這些“筆畫點”在該支持上具有位置(當該支持與屏幕平面不相同吋)。結果,筆畫的規(guī)定是全部栩栩如生的,屏幕在這里實際上與制紙相對應(當所述支持是屏幕平面時,設計者實際上正交地面對圖紙)。因此,在ニ維平面(在其上規(guī)定筆畫的屏幕)與三維場景中的表面(所述支持)之間生成映射。在實現時,當將所述ー組點投影到支持上時,要考慮用戶的觀點,如本領域所公知的。在圖6上,表示了ー種平面支持410。將筆畫的離散化點投影到該平面支持上。隨后,在圖I的步驟S140,根據投影的一組點以及將所述ー組點投影到其上的支持,來構造3D建模對象。構造三維建模對象意味著,將該三維建模對象的規(guī)范存儲在ー個文件或多個文件中。結果,可以將構造的3D建模對象存儲在例如數據庫上,以便下一次使用。使用所投影的“筆畫點”和將“筆畫點”投影到其上的支持,來構造3D建模對象。這涉及將投影的“筆畫點”的位置與關于所述支持的數據一起存儲。結果,構造步驟是在與投影的“筆畫點”的位置和所述支持有關的數據上執(zhí)行計算的步驟。有利的是,可以僅僅存儲所述支持在3D場景中的坐標,因此其提高了用于構造三維建模的速度,減少了構造(或者計算)三維建模對象所需要的計算資源。可以從構造的3D建模對象中存儲的支持在3D場景中的坐標來找回所述支持。此夕卜,還可以從投影的“筆畫點”的坐標中找回所述支持平均平面是通過協(xié)方差矩陣和適當向量的計算來計算得到的。還可以將構造的建模對象用作支持其用作點云。例如,通過構成所構造的3D建模對象的點的本地棋盤格,所構造的3D建模對象自身變成支持。根據本發(fā)明的3D建模對象的設計限制了計算資源的需求,這是由于需要計算任何幾何曲線事實上,根據其生成幾何形狀的幾何建模對象需要巨大的計算資源。此外,與幾何建模對象相比,存儲根據本發(fā)明所構造的基于像素的幾何形狀需要更少的存儲器。此夕卜,本發(fā)明允許生成不能使用純幾何方法(容易)獲得的3D建模對象事實上,為了限制計算資源的消耗,幾何表示需要相對簡単。因此,本發(fā)明增加了與屏幕的用戶交互的靈活性,這是由于計算資源不再限制所述用戶交互。另外的優(yōu)點在于所構造的3D建模對象可靠地考慮了用戶的設計意圖。事實上,存在著對于用戶規(guī)定的筆畫的任何解釋,因此其復制成用戶的設計。相反,在幾何環(huán)境(也就是說,具有幾何建模對象)中,幾何曲線擁有修改用戶的原始設計意圖的特性。例如,度數為5的貝塞爾曲線不允許用戶生成擺動形狀,而根據本發(fā)明構造的建模對象允許。因此,用戶具有他/她在徒手畫圖環(huán)境中工作的感覺,因此改善了エ效。其導致更容易并更快地生成更準確的3D制圖(例如,草圖)。在本方法的該步驟,構造3D建模對象,這意味著系統(tǒng)(例如,CAD系統(tǒng))可以使用表示該對象的數據。因此,可以構造該三維建模對象的可視化(步驟S150),以便顯示所設計的 3D建模對象。構造可視化意味著計算3D建模對象的圖形表示。特別是,所構造的可視化是基于像素的,其涉及表示3D建模對象僅僅由圖形處理器單元進行計算,因此節(jié)約了 CPU和存儲器的計算資源。下面的其它優(yōu)點將是顯而易見的??梢暬臉嬙炜梢园ㄡ槍λ队暗囊唤M點中的每ー個點,計算至少兩個偏移點(步驟S153)。投影的“筆畫點”的偏移點是位于將“筆畫點”投影在其上的支持上的并與所投影的“筆畫點”間隔開的點。該偏移點在支持之上,這意味著該點屬于該表面。該偏移點與所投影的“筆畫點”間隔開,意味著偏移點與“筆畫點”不同??梢匀缦滤龅貓?zhí)行偏移點的計算。首先,在步驟S151,計算折線。該折線對投影到所述支持的一組點中的點進行鏈接。折線是連接的線段序列,其中線段是由兩個投影的“筆畫點”確定的線的一部分。應當理解的是,對這些線段進行連接,使得折線近似該筆畫在所述支持上的投影。現參見圖6,顯示了連接投影的“筆畫點”的折線420。如顯而易見的,該折線近似了圖5的筆畫400在支持410上的投影(沒有表示)。返回參見圖1,在步驟S152,隨后針對投影到支持上的每ー個“筆畫點”,計算偏移向量。該偏移向量可以表不為O = a*07 a£)o a是用戶可以選擇的系數,或者是系統(tǒng)的缺
省值。該系數部分地確定偏移點和所投影的“筆畫點”之間的距離,其中根據該投影的“筆畫點”來計算該偏移點。有利的是,系數a允許增加或減少在步驟S156計算得到的表示的厚度。I!是從投影的“筆畫點”開始的與所述支持垂直的単位向量。£是由鏈接構成折線的所述ー組點中的兩個點的線定義的向i 和£具有作為原點的共同的投影的“筆畫點”。 和/,之間的乘積是向量積。偏移向量的計算在圖7中是更顯而易見的。作為投影步驟S130的結果,每ー個點402,404,406位于所述支持上,并與法線向量!!相關聯。如圖所示,確定鏈接點406和404的向量£,其具有點406作為原點。因此,可以使用關系式d = a*(i/v£)來計算針對點406的偏移向量d=同樣,根據鏈接點404和402的向量£以及法線向量(其均以點404作為原點),來計算針對點404的偏移向量在這兩種情況下,將系數a選擇為使得a = I。返回參見圖1,根據先前計算的偏移向量ひ來確定至少兩個偏移點。通過計算該向
量的范數I,來執(zhí)行該確定,使得識別兩個點。這在圖8中進行了描繪,其中在圖8中,根據
偏移向量的范數來獲得偏移點。例如,投影的“筆畫點”406具有兩個偏移點408、410。隨后,將這些偏移點投影到3D場景上的至少ー個支持(步驟S154)。優(yōu)選的是,當所述支持不是平面時,或者當在“筆畫點”的投影期間涉及幾個支持時,執(zhí)行上述投影。該投影確保這些偏移點在支持上,也就是說,這些偏移點屬于該表面。應當理解的是,可以將“筆畫點”投影到任何類型的支持上,因此提高了用戶的設計潛力。例如,所述支持可以具有類似于摺皺紙的表面,可以將筆畫投影到該皺紙表面上。
接著,根據這些偏移點計算表面(S155)。該表面由所計算得到的偏移點進行勾畫,并且包括所投影的ー組點(其還稱為投影的“筆畫點”)。對表面進行勾畫意味著,通過鏈接這些偏移點來生成該表面的邊界。以與所投影的“筆畫點”類似的方式對這些偏移點進行彼此鏈接。結果,僅當兩個偏移點的各自投影的“筆畫點”鏈接時,才鏈接這兩個偏移點。此夕卜,僅僅可以連接位于折線的相同一側的偏移點。事實上,折線對其被計算的表面進行(至少部分地)劃分,使得規(guī)定了兩側。應當理解的是,當將偏移點鏈接在一起時,建立了兩個補充的折線,第一補充的折線位于包括所投影的“筆畫點”的折線的ー側,第二補充的折線則位于另外ー側。因此,根據偏移點計算得到的表面是構成支持的表面的選定部分,其中將“筆畫點”投影到所述支持上。該計算得到的表面是平面或者曲面。結果,計算得到的表面反映了所述支持的拓撲,其可以理解計算得到的表面在3D空間中如何變化。在實現時,對計算得到的表面進行棋盤化(步驟S155)。所構造的表面是拓撲模型的邊界,為了有助于計算得到的表面的管理和呈現,使用棋盤格布置對其進行近似。該棋盤格布置將所計算得到的表面劃分成小型網格,容易分析2D面片。一般情況下,將計算得到的表面棋盤化成根據偏移點生成的三角形。也可以說,將表面進行三角形化。該表面可以由網格生成器來生成,如本領域所公知的。圖9中示出了棋盤化的結果。隨后,在步驟S156,計算棋盤化表面的表示。該步驟包括應用著色器(shader)來渲染該表面。著色器是包括來自關于圖形硬件(例如,圖形處理器單元(GPU))的計算效果的指令的小型軟件。著色器允許只被允許的共同幾何變換和像素著色功能;著色器允許描述像素的特點。在實現時,對于棋盤化表面的每一片2D面應用著色器??梢栽诶缙聊簧希蛴脩麸@示計算得到的表示。圖10描繪了棋盤化的表面,其中僅三角形430應用了著色器,該三角形用灰色表
/Jn o應當理解的是,可以使用至少ー個其它支持來重復該方法的步驟。所述支持可以由用戶選擇,或者進行自動地選擇。因此,可以構造幾個3D建模對象,后者可以是對象的一部分。換句話說,用戶可以生成同一對象的幾個不同視圖,如圖13-圖16中所示。在圖13中,示出了 3D建模對象的可視化。該3D建模對象是用戶繪制的對象(這里,其是照相機)的草圖。該草圖在平面支持上構造,并表示用戶想像的照相機的ー個視點。在圖14中,用戶選擇了另ー個平面支持,使得構造用戶想像的照相機的另ー個可視化,該可視化表示照相機的另ー個視點。同樣,在圖15和圖16中,顯不了在兩個不同的支持上構造的兩個3D建模對象的兩個可視化,它們表示照相機的兩個其它視點。因此,用戶可以一歩一歩地(也就是說,對于每ー個新選擇的支持)跟蹤對象的形狀,井根據幾個視點獲得同一對象的幾個可視化。在實現時,用戶可以操作3D場景中的支持(例如,平面),因此該支持的每ー個操作生成一個新的支持。對支持進行操作意味著,用戶在3D場景中移動該支持。如本領域所公知的對其進行執(zhí)行,例如使用諸如鼠標之類的觸覺設備移動該支持。作為操作的結果,選擇新的支持。有利的是,當用戶對支持進行操作時,他/她可以仍然可以觀看到該3D建模對象的可視化,使得用戶理解新的視點。此外,該方法允許在相同的支持上規(guī)定3D建模對象。這允許用戶跟蹤復雜對象(例如,照相機),用戶勾畫幾個筆畫,就像他/她將在紙張上所做的那樣。 有利的是,用戶規(guī)定的筆畫的可視化是平面的,而這種表示通常是線性的。在經典的方法中,一組折線表示該對象,而在本發(fā)明中,對象被棋盤化,這允許應用著色器(例如,著色器可以應用于計算得到的表面的每ー個三角形上)。結果,由于著色器,可以應用幾個顯示選項(例如,厚度、不透明、諸如逐漸不透明之類的視覺渲染等等)。在本方法的該步驟,已構造了 3D建模對象的基于像素的表示,并顯示給用戶。換句話說,顯示了 3D像素草圖。用戶現在需要在從3D建模對象獲得的幾何3D建模對象上進行工作。例如,用戶可能需要在CAD系統(tǒng)中變換3D建模對象,其中CAD系統(tǒng)可能需要CAD建模對象(其還稱為幾何建模對象)。用于設計3D幾何建模對象的方法包括提供一組如先前所述設計的3D建模對象的步驟。該步驟在圖I中通過連接方框S140與方框S160的箭頭來表示。提供3D建模對象意味著構造的3D建模對象可以由該系統(tǒng)存取。一般情況下,CAD系統(tǒng)存取包括基于像素的幾何建模對象(也就是說,3D建模對象)的規(guī)范的文件。該組3D建模對象可以存儲在例如數據庫中。一旦系統(tǒng)存取了該組3D建模對象,就提取這些3D建模對象的點(步驟S160)。這些提取的點是在支持上投影的“筆畫點”。換句話說,CAD系統(tǒng)可以存取位于所述支持上的每ー個點的各自位置。如先前所提及的,可以從“筆畫點”的坐標中找回該支持。接著,在步驟S170,根據所提取的點計算幾何光滑曲線。通過從閉區(qū)間到歐幾里得空間的函數,來規(guī)定幾何光滑曲線,使得圖像點的笛卡爾坐標的每ー個在該閉區(qū)間上是連續(xù)的可微函數。換句話說,光滑曲線是連續(xù)曲線,沒有間隙或中斷,不具有角(也就是說,在某個點斜率沒有突然改變,例如,在兩條線的交叉點獲得的情形)。如本領域所公知的(例如,最小ニ乘的方法),執(zhí)行光滑曲線的計算。結果,將具有基于像素的幾何形狀的ー組3D建模對象轉換成具有幾何數據的至少ー個3D幾何建模對象。有利的是,將非幾何數據轉換成在其上可以應用特定算法的幾何數據。這允許生成3D幾何建模對象,在CAD系統(tǒng)中不能夠通過亂畫(scratch)來生成的3D幾何建模對象,這是由于通過亂畫生成它們將需要過多的計算資源。因此,根據本發(fā)明的方法的3D幾何建模對象的構造增加了用戶的設計能力,并限制了該系統(tǒng)的計算資源的消耗??梢愿鶕J剑瑏韴?zhí)行從步驟S160處提取3D建模對象的點轉換到在步驟S170處計算幾何曲線,第一模式稱為3D幾何建模對象的自動提取,在圖I中在A上示出,并且第二模式稱為3D幾何的手工提取,在圖I中在M上示出。在無需CAD系統(tǒng)和用戶之間的任何交互的情況下,自動提取模式計算幾何光滑曲線(步驟S170)。這意味著當系統(tǒng)計算光滑曲線時,用戶不進行干預。自動提取的幾何光滑曲線是表示所有投影的“筆畫點”的平均位置。有利的是,自動模式允許在無需用戶的任何動作的情況下跟蹤光滑曲線,其中該光滑曲線考慮了用戶的設計意圖。這增加了用于設計幾何3D建模對象的方法的整體速度。這在圖11中進行了描繪。示出了三個折線502、503、504。這些折線是根據在同一支持上投影的“筆畫點”來構造的,其中該同一支持表示在提供ー組3D建模對象的步驟處所提供的3D建模對象。曲線500表示根據所投影的“筆畫點”計算得到的光滑曲線,也就 是說,幾何3D建模對象500表示該組折線502、503和504的平均曲線。在實現時,根據在其上投影這些點的支持,來執(zhí)行這些點的提取。這就是說執(zhí)行所提取的點的過濾,該過濾是基于在其上投影所提取的點的支持。換句話說,生成投影在同一支持上的3D建模對象的“筆畫點”的子集。這允許快速地尋找有關的3D建模對象。通常,對于ー個支持存在ー個3D建模對象,3D建模對象是根據ー個支持構造的。但是,3D建模對象還可以根據兩個或更多支持來構造。此外,兩個3D建模對象可以具有相同的支持,例如,用戶兩次選擇同一支持。此外,可以根據折線的相應形狀,來執(zhí)行這些點的提取。這可以由于存儲所投影的筆畫點的結構來執(zhí)行通過點以及點的數量來描繪每ー個構造的3D建模對象的特性。因此,提取這些點就是讀取存儲所投影的筆畫點的結構。這些折線是根據在同一支持上投影的并表示在提供ー組3D建模對象的步驟處提供的3D建模對象的“筆畫點”來構造的。因此,執(zhí)行過濾,以便選擇構成折線集的3D建模對象的投影的“筆畫點”,該過濾是基于折線的形狀。例如,如果兩個折線具有類似的形狀,而第三折線具有完全不同的形狀,則生成第一子集(其中第一子集包括具有類似形狀的兩個折線),生成包括第三折線的第二子集。結果,根據第一子集的折線中的點來計算第一幾何光滑曲線,針對第二子集的折線中的點來計算第ニ幾何光滑曲線。這冒險地允許跟蹤幾何光滑曲線,其中該曲線考慮了用戶在草圖階段期間的設計意圖。該過濾依賴于下面的假定在進ー步的步驟中,勾畫幾個類似筆畫的用戶旨在跟蹤表示這些筆畫的干凈線。接著,根據幾何光滑曲線來構造三維幾何建模對象(步驟250)。這意味著規(guī)定幾何光滑曲線的數據包括允許諸如幾何數據之類的平滑表示的數據,例如其包括空間中的相對位置。換句話說,生成可以由CAD系統(tǒng)使用的文件。此外,該文件可以容易地在幾個系統(tǒng)(例如,通過計算機網絡連接的系統(tǒng))之間共享。應當理解的是,針對每ー個提供的三維建模對象,重復提取步驟(S180)、計算步驟(S170)和構造步驟(S250)。這相當于說,提取所提供的3D建模對象中的所有點,并且?guī)缀跛刑崛〉狞c都用于構造3D幾何建模對象。換句話說,可以從設計者生成的3D建模對象中自動地獲得3D幾何對象。換句話說,在用戶勾畫出對象之后,可以自動地獲得該對象的痕跡。因此,増加了用于獲得“干凈”對象(也就是說,對象的痕跡)的速度,并可以將該痕跡導入到CAD系統(tǒng)中,以便用于進ー步設計操作。在系統(tǒng)(例如,CAD系統(tǒng))和用戶之間交互之時,手工提取模式計算幾何光滑曲線(步驟S170)。這意味著當系統(tǒng)計算光滑曲線時,用戶與系統(tǒng)交互。因此,該幾何光滑曲線是表示用戶與系統(tǒng)的交互的曲線。換句話說,用戶繪制_在替代至少兩個3D建模對象的曲線。因此,示蹤階段完成用戶的需求。在實現時,用戶與屏幕進行交互(步驟S190),使得規(guī)定與用戶交互相對應的筆畫(S200)。這些步驟類似于步驟SlOO和S110。 隨后,在所提取的點之中,獲取所提供的一組三維建模對象中的一個三維建模對象以及所述ー個三維建模對象的至少ー個支持。換句話說,獲取3D建模對象以及使用其來構造3D建模對象的支持。所述獲取可以通過獲取離從光標(例如,圖2中的光標2060)開始的選取路徑最近的三維建模對象來執(zhí)行,光標可以由觸覺設備進行控制,觸覺設備允許用戶在圖形用戶界 面中進行交互。應當理解的是,用戶的交互可以進行直接實現,例如,當屏幕是敏感的(例如,單觸摸或多觸摸屏)并且用戶在該屏幕上施加壓カ時,或者間接實現,例如通過使用觸覺設備(如,鼠標或者用戶可以在其上應用觸摸筆的觸摸板)。這還可以通過在屏幕上指示激光或者與屏幕交互的任何其它方式來實現。在直接在屏幕上實現用戶的交互的情況下,選取路徑從屏幕上的用戶施加壓カ的位置開始。最近的3D建模對象是3D場景中與屏幕具有最小距離的3D建模對象。換句話說,最近3D建模對象是用戶感知到的最接近的對象。這有助于實現用戶的跟蹤操作。選取路徑是與所提供的一組中的3D建模對象交叉的路徑。選取路徑意味著可以選取與該路徑交叉的對象,也就是說,可以單獨地選擇這些對象。換言之,選取路徑是在屏幕位置處計算的光線(近遠)和3D場景中可視化的3D建模對象之間的交叉的結果。獲取意味著在查詢時,對針對搜索和獲取而組織的數據集合(例如,數據庫)中存儲的3D建模對象進行搜索,并將其提供為該查詢的結果。在實現時,可以使用光線(例如,使用光線投射的技木)來實現選取路徑(S210)。因此,選取路徑包含與該光線交叉的3D建模對象的可視化的列表。選取路徑的實現并不限于光線投射,也可以預期其它方法(例如,大量光線投射)。光線投射是本領域公知的用于確定與光線交叉的第一對象(也就是說,在3D場景中,與屏幕最近的對象)的解決方案,。該光線是從光標投射的,或者來自于屏幕上的用戶在觸摸敏感屏幕中施加壓カ時的位置。在光線從光標投射的情況下,該光線可以是連續(xù)地投射的。在用戶與屏幕交互的情況下(例如,用戶觸摸屏幕時),光線可以從屏幕中的施加壓カ的位置進行投射。應當理解的是,可以通過確定離從光標開始的選取路徑最近的支持,來執(zhí)行所提供的ー組中的ー個3D建模對象的獲取,并且還獲取使用該支持構造的3D建模對象。在兩個或更多3D建模對象共享該支持的情況下,則獲取這兩個或更多對象。接著,一旦執(zhí)行了獲取步驟(獲取了支持),則將與用戶交互相對應的筆畫離散化成ー組點(S230)。隨后,將該組點中的點投影到在步驟S220獲取的支持上。應當理解的是,可以執(zhí)行這些步驟S230和240以及步驟S120和130。接著,根據幾何光滑曲線來構造三維幾何建模對象(步驟250 )。這與自動提取模式類似地執(zhí)行。
應當理解的是,根據手工提取模式的提取步驟(S180)、計算(S170)和構造是用戶與屏幕交互時進行的。在實現時,當在用戶與屏幕交互時規(guī)定筆畫的同時,重復這些步驟,這等于說,用戶繪制g在替代至少兩個3D建模對象的曲線。現在參見圖12,顯示了從圖11的光滑曲線500獲得的3D幾何建模對象。該幾何對象可以在CAD系統(tǒng)中操作,例如,可以使用控制點506來修改該曲線。已經描述了本發(fā)明的優(yōu)選實施例。應當理解的是,可以在不脫離本發(fā)明的精神和范圍的基礎上,進行各種修改。因此,其它實現也落入所附權利要求書的范圍之內。例如, 計算用于構造所述支持的表面的一部分的選擇的偏移點,可以通過確定有規(guī)律條帶來計算,其中該有規(guī)律條帶從投影的“筆畫點”形成的折線延伸用戶或系統(tǒng)確定的距離(例如,像素的數量)。
權利要求
1.用于設計三維建模對象的計算機實現的方法,其中,所述方法包括下列步驟 -與屏幕的用戶交互(SlOO); -定義(SllO)與所述用戶交互相對應的筆畫; -將所述筆畫離散化(S120)為ー組點; -將所述ー組點投影(S 130)到三維場景中的至少ー個支持上; -根據所投影的一組點和所述至少ー個支持,構造(S140)所述三維建模對象。
2.根據權利要求I所述的方法,還包括通過下列操作構造(S150)所述三維建模對象的可視化的步驟 -針對所投影的一組點中的每ー個點,計算(S153)至少兩個偏移點,偏移點是位于所述至少ー個支持上的并與所述每ー個點間隔開的點;以及 -計算(S155)由計算得到的至少兩個偏移點勾畫的表面,所述表面包括所投影的ー組點。
3.根據權利要求2所述的方法,其中,計算至少兩個偏移點包括 -計算鏈接所投影的一組點中的點的折線; -針對所投影的一組點中的每ー個點,計算偏移向量d = *0lA/),其中,a是系數,i是與所述支持垂直的単位向量,/是鏈接構成所述折線的一組點中的兩個點的線所定義的向量,g和£將所述每ー個點作為共同原點; -根據所述偏移向量^來確定所述至少兩個偏移點;以及 -將所確定的所述至少兩個偏移點投影到三維場景中的所述至少ー個支持上。
4.根據權利要求2或3中的一項所述的方法,還包括 對計算得到的偏移所勾畫的所述計算得到的表面進行棋盤化的步驟。
5.根據權利要求2到4中的一項所述的方法,其中,構造可視化的步驟還包括 應用著色器來渲染所述計算得到的表面。
6.根據權利要求I到5中的一項所述的方法,其中,對于所述三維場景中的至少另ー個支持,重復所述方法的步驟。
7.一種用于設計三維幾何建模對象的計算機實現的方法,所述方法包括下列步驟 -提供根據權利要求I到6中的一項所述的方法而設計的一組三維建模對象; -提取(160)所提供的一組三維建模對象中的點; -根據所提取的點計算(170)幾何光滑曲線; -根據所述幾何光滑曲線構造(250)三維幾何建模對象。
8.根據權利要求7所述的計算機實現的方法,其中,在所述提取步驟,根據支持來提取(180)所述點,其中所述點被投影在所述支持上。
9.根據權利要求7所述的計算機實現的方法,其中,所述提取步驟還包括 -與屏幕的用戶交互(190); -定義(200)與所述用戶交互相對應的筆畫; -在所提取的點中獲取(220)所提供的一組三維建模對象中的一個三維建模對象以及所獲取的所述ー個三維建模對象的至少ー個支持;-將與所述用戶交互相對應的所述筆畫離散化(230)為ー組點; -將所述一組點中的點投影(240)到所述至少一個所獲取的支持上。
10.根據權利要求9所述的計算機實現的方法,其中,所述獲取步驟還包括 獲取離從光標開始的選取路徑最近的三維建模對象。
11.根據權利要求10所述的計算機實現的方法,其中,所述選取路徑包括從所述光標投射的光線。
12.根據權利要求7或8中的一項所述的計算機實現的方法,其中,針對每ー個所提供的三維建模對象,重復所述提取步驟、計算步驟和構造步驟。
13.根據權利要求9到11中的一項所述的計算機實現的方法,其中,在用戶與屏幕交互的同吋,重復所述提取步驟、計算步驟和構造步驟。
14.ー種包括供計算機執(zhí)行的指令的計算機程序,所述指令包括用于執(zhí)行權利要求1-13中的任意一項所述的方法的模塊。
15.一種計算機可讀存儲介質,其上記錄有根據權利要求14所述的計算機程序。
全文摘要
提出了一種用于設計三維建模對象的計算機實現的方法,其中該方法包括下列步驟與屏幕的用戶交(S100);定義(S110)與該用戶交互相對應的筆畫;將所述筆畫離散化(S120)為一組點;將所述一組點投影(S130)到三維場景中的至少一個支持上;根據所投影的一組點和所述至少一個支持,構造(S140)所述三維建模對象。
文檔編號G06F17/50GK102779358SQ20121014019
公開日2012年11月14日 申請日期2012年5月8日 優(yōu)先權日2011年5月11日
發(fā)明者F·萊特弗斯, J·德雷爾, J·洪, M·克埃里克 申請人:達索系統(tǒng)公司