本發(fā)明涉及一種用于顯示數(shù)字模型化對象的組件的方法,其中,至少一個(gè)對象的被選擇部分通過透過放置在其之前的對象的透明性而“被顯露”,否則所述被選擇部分將被隱藏。本發(fā)明還涉及用于執(zhí)行所述方法的計(jì)算機(jī)程序產(chǎn)品、非易失性計(jì)算機(jī)可讀數(shù)據(jù)存儲(chǔ)介質(zhì)和計(jì)算機(jī)輔助設(shè)計(jì)(cad)系統(tǒng)。
背景技術(shù):
本發(fā)明適用于計(jì)算機(jī)圖形領(lǐng)域,并且更特別地涉及計(jì)算機(jī)輔助設(shè)計(jì)領(lǐng)域。本發(fā)明特別適合于產(chǎn)生技術(shù)說明、營銷展示、裝配說明、培訓(xùn)材料等。
在上述所有應(yīng)用中,存在表示數(shù)字模型化對象的組件、顯示通常隱藏在組件內(nèi)部的部件的需要。例如,可能需要提供其中發(fā)動(dòng)機(jī)或者其他機(jī)械機(jī)構(gòu)透過車身可見(“顯露”)的汽車表示。
為了獲得這種圖形表示,已知的是使用通常使用cad軟件創(chuàng)建的組件和將被顯露的被隱藏部分的三維(3d)數(shù)字模型來生成其二維(2d)圖像,然后在2d計(jì)算機(jī)圖形軟件中使用一個(gè)或多個(gè)蒙版來遮蓋這些圖像以選擇其中顯露“被隱藏”部分的感興趣的區(qū)域。該方法是麻煩的,并且需要用戶大量的手動(dòng)干預(yù)。此外,如果改變了觀看組件的視點(diǎn),則需要重復(fù)整個(gè)過程。
一種備選方案是通過以下方式直接在3d中操作,所述方式為設(shè)置內(nèi)部對象的優(yōu)先級以使得即使當(dāng)它們位于其他對象之后時(shí)它們也是可見的。例如,圖1顯示了玩具汽車(在左側(cè))和其傳動(dòng)裝置(在右側(cè))的圖形表示。在汽車的“通常”表示中,傳動(dòng)裝置大多是隱藏的,因?yàn)槠湮挥谄嚨能嚿砗妥笄拜喼?。然而,傳?dòng)裝置可以被設(shè)定成具有在車身和輪子之上的優(yōu)先級,并且因此可以在最終的處理后的圖像中通過透明性而看到(參見圖2)。該方案的問題是不能使傳動(dòng)裝置僅僅透過車身的特定區(qū)域可見(或者相反地,不能僅僅使傳動(dòng)裝置的特定部分可見)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的這些缺點(diǎn)。具體而言,本發(fā)明的目的在于提供一種用于顯露三維模型化對象的組件的“被隱藏”部件的被選擇部分的簡單有效的方法。根據(jù)本發(fā)明,所述方法在3d中執(zhí)行,從而允許容易地改變視點(diǎn),并且需要最小的人為干預(yù)。
根據(jù)本發(fā)明,該目的通過引入被稱為“顯露器”的圖形工具來實(shí)現(xiàn),所述圖形工具允許選擇所述組件的特定區(qū)域,在所述特定區(qū)域中,被隱藏的部件可以通過透過位于其前方的其他對象的透明性來顯露。本發(fā)明的有利特征在于所述顯露器是3d對象,其可以實(shí)時(shí)地四處移動(dòng)、活動(dòng)和調(diào)整。
于是,本發(fā)明的一個(gè)目的是一種在三維場景中顯示數(shù)字模型化對象的組件的計(jì)算機(jī)實(shí)施的方法,所述方法包括以下步驟:
a)將所述組件的至少一個(gè)對象限定為可顯露的;
b)從所述對象的三維數(shù)字模型生成從一個(gè)視點(diǎn)所見的所述組件的圖形表示,其中,所述可顯露對象至少部分地位于被稱為隱藏對象的至少另一個(gè)對象之后;以及顯示所述圖形表示;
c)使用圖形工具來選擇所述組件的所述圖形表示的、被稱為顯露區(qū)的區(qū)域;以及
d)渲染(呈現(xiàn))包括從所述視點(diǎn)所見的所述組件的三維表示的三維場景,其中所述可顯露對象的位于所述隱藏對象之后并且包括在所述顯露區(qū)內(nèi)的部分通過透過所述隱藏對象的透明性而示出,而所述可顯露對象的位于所述隱藏對象之后的(其他)部分不可見。
根據(jù)本發(fā)明的特定實(shí)施例:
-所述步驟c)可以通過以下方式來執(zhí)行,所述方式為使用圖形用戶接口創(chuàng)建至少通過位置、取向和角度開口限定的圖形工具,所述顯露區(qū)由所述圖形工具的表面在所述隱藏對象的表面上的投影限定。
-更特別地,所述圖形工具可以是與所述三維數(shù)字模型相交的、被稱為顯露錐體的錐體,所述顯露區(qū)由所述隱藏對象的表面和所述顯露錐體之間的相交部限定。
-所述步驟b)可以包括生成所述組件的所述圖形表示,所述可顯露對象的位于所述隱藏對象之后的所有部分于是可以通過透過所述隱藏對象的透明性來示出。
-所述步驟d)可以包括將所述可顯露對象的像素與所述隱藏對象的相應(yīng)像素混合。
-所述組件的對象可以布置在層中,并且屬于除了最外層之外的層的對象可以至少部分地被屬于外層的對象隱藏。
本發(fā)明的另一個(gè)目的是一種計(jì)算機(jī)程序產(chǎn)品,其存儲(chǔ)在非易失性計(jì)算機(jī)可讀數(shù)據(jù)存儲(chǔ)介質(zhì)上,并且包括計(jì)算機(jī)可執(zhí)行指令,以使計(jì)算機(jī)系統(tǒng)執(zhí)行所述方法。
本發(fā)明的另一個(gè)目的是一種非易失性計(jì)算機(jī)可讀數(shù)據(jù)存儲(chǔ)介質(zhì),其包含計(jì)算機(jī)可執(zhí)行指令,以使計(jì)算機(jī)系統(tǒng)執(zhí)行所述方法。
本發(fā)明的另一個(gè)目的是一種計(jì)算機(jī)輔助設(shè)計(jì)系統(tǒng),其包括耦接至存儲(chǔ)器和圖形用戶接口的處理器,所述存儲(chǔ)器存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令,以使計(jì)算機(jī)輔助設(shè)計(jì)系統(tǒng)執(zhí)行所述方法。
附圖說明
本發(fā)明的附加的特征和優(yōu)點(diǎn)將從以下結(jié)合附圖給出的說明中變得顯而易見,附圖顯示了:
-圖1是根據(jù)本發(fā)明的實(shí)施例和現(xiàn)有技術(shù)限定組件的可顯露對象的步驟;
-圖2是根據(jù)本發(fā)明的實(shí)施例和現(xiàn)有技術(shù)顯示對象組件的圖形表示的步驟,其中隱藏對象和可顯露對象都是可見的;
-圖3a-3d是根據(jù)本發(fā)明的實(shí)施例的創(chuàng)建用于選擇顯露區(qū)的圖形工具的步驟;
-圖4是通過根據(jù)本發(fā)明的實(shí)施例的方法獲得的圖2的組件的圖形表示,其中,在由相應(yīng)的圖形工具限定的兩個(gè)顯露區(qū)中,所述可顯露對象通過透過所述隱藏對象的透明性而被顯露;
-圖5和圖6是適于執(zhí)行根據(jù)本發(fā)明的實(shí)施例的方法的相應(yīng)計(jì)算機(jī)系統(tǒng)的方框圖。
具體實(shí)施方式
下文中,“三維”(或“3d”)對象將會(huì)是允許三維(3d)表示的對象或其數(shù)字模型。3d表示允許從所有角度觀察部件。例如,當(dāng)被3d表示時(shí),3d對象可以被處理以及圍繞其任意軸線轉(zhuǎn)動(dòng)或者圍繞所述表示顯示于其上的屏幕中的任意軸線轉(zhuǎn)動(dòng)。
相反,“二維”(或“2d”)對象將會(huì)是僅僅允許例如平面上的二維(2d)表示的對象或其數(shù)字模型。例如,2d對象僅僅可以在所述表示顯示于其上的屏幕的平面中平移或者圍繞垂直于所述屏幕的軸線旋轉(zhuǎn)。
對象的“數(shù)字模型”是數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)結(jié)構(gòu)集合,其可以由計(jì)算機(jī)處理并且包含計(jì)算機(jī)生成所述對象的2d或3d表示所需的所有信息。所述數(shù)字模型還可以包含其他項(xiàng)信息,例如,表示物理參數(shù)的數(shù)據(jù),但是它們不是本發(fā)明所需的信息。
如上所述,圖1顯示了對象a(在該情況下是玩具汽車)的三維數(shù)字模型化組件的圖形表示,其包括分開展示的至少兩個(gè)不同的對象,即:車身ho和傳動(dòng)裝置ro(分開表示)。所述對象可以分層次地組織在多個(gè)層中:所述傳動(dòng)裝置屬于內(nèi)層,車身屬于最外層。這意味著,由于所述組件的幾何結(jié)構(gòu),車身“優(yōu)先于”傳動(dòng)裝置,并且當(dāng)兩個(gè)對象重疊時(shí),僅僅車身可見。因此車身可以稱為“隱藏對象”,因?yàn)楫?dāng)從特定的視點(diǎn)觀看時(shí),它“隱藏”了所述組件的位于其后的其他對象。然而,即使當(dāng)幾何結(jié)構(gòu)決定了所述傳動(dòng)裝置ro應(yīng)被隱藏時(shí),用戶也可以將所述傳動(dòng)裝置ro限定為“可顯露的”,即可見的。這可以使用圖形接口來實(shí)現(xiàn),例如通過將鼠標(biāo)指針定位到傳動(dòng)裝置的表示上、在其上執(zhí)行右擊并從彈出菜單中選擇“限定為可顯露的”選項(xiàng)來實(shí)現(xiàn)。
圖2顯示了通過將圖1的兩個(gè)分開的表示相組合來獲得的組件a的圖形表示。在渲染(呈現(xiàn))該表示的同時(shí),計(jì)算機(jī)將“幾何”優(yōu)先級和“用戶限定”優(yōu)先級二者考慮在內(nèi);因此,屬于不同層的兩個(gè)對象ho、ro根據(jù)被稱為“透明性設(shè)置”的預(yù)定(通常是用戶可選擇的)權(quán)重來被混合。該混合可以逐像素地執(zhí)行;其通常涉及為最終圖像的每個(gè)像素限定亮度值和色度值,所述亮度值和所述色度值通過將被混合的圖像的相應(yīng)值的線性組合來給出。這不影響3d數(shù)字模型,而僅僅影響從所述模型獲得的、實(shí)際顯示在計(jì)算機(jī)顯示器上的2d圖像。
結(jié)果是“被隱藏”對象ro被顯露,即,通過透過所述隱藏對象ho的透明性而可見。
這對應(yīng)于現(xiàn)有技術(shù),并且如以上所說明,并不完全令人滿意。但是,在本發(fā)明的框架內(nèi),其僅僅構(gòu)成準(zhǔn)備(初步)步驟。
本發(fā)明方法的以下步驟在于創(chuàng)建“顯露器”,其允許對被限定為“可顯露”的被隱藏對象實(shí)際上將在其中被顯露出來的、所述組件的區(qū)域(“顯露區(qū)”)進(jìn)行選擇。這可以如圖3a-3d所示地執(zhí)行。
首先(圖3a),用戶例如通過將指針pt定位在合適的用戶接口的“顯露器創(chuàng)建”按鈕b上來啟動(dòng)顯露器的創(chuàng)建。
然后(圖3b)用戶例如使用相同的指針p選擇處于組件a的圖形表示的表面上的點(diǎn)ap1。有利地,點(diǎn)ap1對應(yīng)于將由顯露器限定的顯露區(qū)的中心。
隨后(圖3c),用戶選擇第二點(diǎn)ap2,從而確定限定顯露區(qū)的顯露器rc的取向。在附圖的示例性實(shí)施例中,顯露器rc是錐體,并且ap2是其頂點(diǎn),而ap1對應(yīng)于錐體軸線與組件a的表面的相交部。點(diǎn)ap2可以通過以下方式選擇,所述方式為點(diǎn)擊或者拖動(dòng)指針pt遠(yuǎn)離ap1而同時(shí)保持按壓鼠標(biāo)的左側(cè)按鈕并且僅僅當(dāng)指針位于ap2的期望位置處時(shí)將其釋放。
顯露區(qū)rz由顯露器和組件表面之間的相交部限定或者等同地由顯露器外表面在所述表面上的投影限定。
所述錐體以預(yù)定的角度開口(例如30°)創(chuàng)建,所述角度開口可以通過移動(dòng)位于顯露區(qū)的邊界上的第三點(diǎn)ap3來調(diào)整;這允許修改所述區(qū)的大小(圖3d)。
顯露器rc是3d對象,其參數(shù)(位置、取向、角度開口)可以使用三個(gè)“錨定點(diǎn)(定位點(diǎn))”ap1、ap2、pa3交互式地修改。此外,如果組件a移動(dòng)或旋轉(zhuǎn),那么顯露器將跟隨它移動(dòng)或旋轉(zhuǎn)。
可以使用多于一個(gè)顯露器,例如,在圖4上表示出了限定相應(yīng)的顯露區(qū)(rz1,rz2)的兩個(gè)顯露器(rc1,rc2)。
在已經(jīng)創(chuàng)建了一個(gè)或多個(gè)顯露器之后,使用計(jì)算機(jī)圖形軟件來渲染3d場景從而表示所述組件,其中,僅僅在(多個(gè))顯露區(qū)內(nèi)(例如,使用上面參考圖2所述的技術(shù))顯露出了可顯露對象ro。這在圖4上示出。所述渲染動(dòng)態(tài)地、即實(shí)時(shí)地執(zhí)行。應(yīng)當(dāng)注意,所述傳動(dòng)裝置ro的某些部件(車輪附近)即使處于顯露區(qū)之外也是可見的,這只是因?yàn)樗鼈儧]有被任何其他具有更高“幾何”優(yōu)先級的對象所隱藏。
用戶可以選擇隱藏顯露器或保留它們顯現(xiàn)。
本發(fā)明的有利特征在于,如果用戶在場景內(nèi)移動(dòng)或旋轉(zhuǎn)組件(或者等同地改變觀看場景的視點(diǎn)),則顯露區(qū)自動(dòng)地跟隨這些改變。
已經(jīng)參考特定實(shí)施例說明了本發(fā)明的方法,但是多個(gè)備選方案也是可能的。例如:
-在上述實(shí)施例中,可顯露對象ro最初在各處顯露出來,而在創(chuàng)建顯露器之后,處于顯露區(qū)之外的部分被隱藏。還能夠從組件的不顯示透明性的“常規(guī)”視圖開始。
-顯露器不必是回轉(zhuǎn)錐體(即,不必是具有垂直于其軸線的圓形底部的錐體)。更一般地,它們可以是具有非圓形底部(或者,在數(shù)學(xué)術(shù)語中,具有準(zhǔn)線)的錐體;在該情況下,限定它們所需的參數(shù)的數(shù)量以及因此錨定點(diǎn)的數(shù)量可以大于三個(gè)(例如,ap3可以由多個(gè)錨定點(diǎn)替換,其中一個(gè)錨定點(diǎn)對應(yīng)于多邊形準(zhǔn)線的一個(gè)頂點(diǎn))。甚至更一般地,顯露器可以完全不是錐形的,而是具有例如拋物體的形狀。
-錐形顯露器可以僅僅由兩個(gè)參數(shù)而非三個(gè)參數(shù)來限定,即,其高度或其角度開口可以是固定的。然而,這并非優(yōu)選。
-存在創(chuàng)建顯露器的不同方式,例如,通過手動(dòng)輸入其參數(shù)的數(shù)值。然而,圖3a-3d所示的圖形方案被認(rèn)為是最具用戶親和性的。
本發(fā)明的方法可以由合適地編程的通用計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)來執(zhí)行,所述通用計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)可包括計(jì)算機(jī)網(wǎng)絡(luò),并以非易失性形式在計(jì)算機(jī)可讀介質(zhì)(例如硬盤、固態(tài)磁盤或cd-rom)上存儲(chǔ)合適的程序,且使用其(多個(gè))微處理器和存儲(chǔ)器執(zhí)行所述程序。
參考圖5描述了適合于執(zhí)行根據(jù)本發(fā)明的示例性實(shí)施例的方法的計(jì)算機(jī)、更確切地說計(jì)算機(jī)輔助設(shè)計(jì)站。在圖5中,所述計(jì)算機(jī)包括執(zhí)行上述過程的中央處理單元(cpu)p。所述過程可以作為可執(zhí)行程序、即計(jì)算機(jī)可讀指令集合存儲(chǔ)在諸如ramm1或romm2的存儲(chǔ)器中,或者存儲(chǔ)在硬盤驅(qū)動(dòng)器(hdd)m3、dvd/cd驅(qū)動(dòng)器m4上,或者可以遠(yuǎn)程存儲(chǔ)。形成組件的對象的三維數(shù)字模型也在存儲(chǔ)器裝置m1至m4中的一個(gè)或多個(gè)上存儲(chǔ)或遠(yuǎn)程存儲(chǔ)。
要求保護(hù)的本發(fā)明不受將本發(fā)明的過程的計(jì)算機(jī)可讀指令和/或數(shù)字模型存儲(chǔ)于其上的計(jì)算機(jī)可讀介質(zhì)的形式的限制。例如,指令和數(shù)據(jù)庫可以存儲(chǔ)在cd、dvd、flash存儲(chǔ)器、ram、rom、prom、eprom、eeprom、硬盤或計(jì)算機(jī)輔助設(shè)計(jì)站與之通信的任何其他信息處理裝置(例如服務(wù)器或計(jì)算機(jī))上。程序和模型可以存儲(chǔ)在同一存儲(chǔ)器裝置上或存儲(chǔ)在不同的存儲(chǔ)器裝置上。
此外,適合于執(zhí)行本發(fā)明方法的計(jì)算機(jī)程序可以作為與cpu800和諸如microsoftvista、microsoftwindows7、unix、solaris、linux、applemac-os的操作系統(tǒng)以及本領(lǐng)域技術(shù)人員已知的其他系統(tǒng)相結(jié)合地執(zhí)行的實(shí)用應(yīng)用程序、后臺(tái)守護(hù)程序或操作系統(tǒng)的組成部分或其組合來提供。
cpup可以是來自美國intel的xenon處理器或來自美國amd的opteron處理器,或者可以是其他類型的處理器,例如來自美國freescale公司的freescalecoldfire、imx或arm處理器。備選地,如本領(lǐng)域普通技術(shù)人員將認(rèn)識(shí)到,cpu可以是諸如來自美國intel公司的core2duo的處理器,或者可以在fpga、asic、pld上實(shí)施或者使用離散邏輯電路來實(shí)施。此外,cpu可以被實(shí)施成協(xié)作工作以執(zhí)行上述本發(fā)明的過程的計(jì)算機(jī)可讀指令的多個(gè)處理器。
圖5中的計(jì)算機(jī)輔助設(shè)計(jì)站還包括用于與諸如局域網(wǎng)(lan)、廣域網(wǎng)(wan)、因特網(wǎng)等網(wǎng)絡(luò)相聯(lián)接的網(wǎng)絡(luò)接口n1,例如來自美國intel公司的intel以太網(wǎng)pro網(wǎng)絡(luò)接口卡。計(jì)算機(jī)輔助設(shè)計(jì)站還包括用于與顯示器dy(例如hewlettpackardhpl2445wlcd顯示屏)相聯(lián)接的顯示器控制器dc,例如來自美國nvidia公司的nvidiageforcegtx圖形適配器。通用i/o接口if與鍵盤kb和定點(diǎn)裝置pd(例如滾球、鼠標(biāo)、觸摸板等)相聯(lián)接。顯示器、鍵盤和定點(diǎn)裝置與顯示器控制器和i/o接口一起形成圖形用戶接口。
磁盤控制器dkc將hddm3和dvd/cdm4與用于使計(jì)算機(jī)輔助設(shè)計(jì)站的所有部件互相連接的通信總線cbs相連接,所述通信總線cbs可以是isa、eisa、vesa、pci等。
因?yàn)橐韵虏考奶卣魇且阎模詾榱撕啙嵠鹨?,本文省略了顯示器、鍵盤、定點(diǎn)裝置以及顯示器控制器、磁盤控制器、網(wǎng)絡(luò)接口和i/o接口的一般特征和功能的描述。
圖6是適合于執(zhí)行根據(jù)本發(fā)明的不同示例性實(shí)施例的方法的計(jì)算機(jī)系統(tǒng)的方框圖。
在圖6中,可執(zhí)行程序exp和對象的三維數(shù)字模型存儲(chǔ)在連接至服務(wù)器sc的存儲(chǔ)器裝置上。除了顯示器控制器、顯示器、鍵盤和/或定點(diǎn)裝置可能不存在于服務(wù)器中之外,存儲(chǔ)器裝置和服務(wù)器的總體架構(gòu)可以與上面參考圖5所論述的相同。
服務(wù)器sc于是經(jīng)由網(wǎng)絡(luò)nw連接至管理員系統(tǒng)ads和終端用戶計(jì)算機(jī)euc。
除了管理員系統(tǒng)和終端用戶計(jì)算機(jī)的存儲(chǔ)器裝置不存儲(chǔ)可執(zhí)行程序exp和/或三維數(shù)字模型之外,管理員系統(tǒng)和終端用戶計(jì)算機(jī)的總體架構(gòu)可以與上面參考圖5所論述的相同。然而,如以下將論述,終端用戶計(jì)算機(jī)存儲(chǔ)被設(shè)計(jì)用于與服務(wù)器的可執(zhí)行程序協(xié)作的客戶端程序。
可以理解,網(wǎng)絡(luò)nw可以是諸如因特網(wǎng)的公共網(wǎng)絡(luò),或者諸如lan或wan網(wǎng)絡(luò)的私有網(wǎng)絡(luò)或其任意組合,并且還可以包括pstn或isdn子網(wǎng)絡(luò)。網(wǎng)絡(luò)nw還可以是諸如以太網(wǎng)的有線網(wǎng)絡(luò),或者可以是諸如包括edge、3g和4g無線蜂窩系統(tǒng)的蜂窩網(wǎng)絡(luò)的無線網(wǎng)絡(luò)。無線網(wǎng)絡(luò)還可以是wi-fi、藍(lán)牙或任何其他已知的無線通信形式。因此,網(wǎng)絡(luò)nw僅僅是示例性的,并且絕不限制本發(fā)明的范圍。
存儲(chǔ)在終端用戶計(jì)算機(jī)的存儲(chǔ)器裝置中并由終端用戶計(jì)算機(jī)的cpu執(zhí)行的客戶端程序經(jīng)由網(wǎng)絡(luò)nw訪問由服務(wù)器sc存儲(chǔ)并包含三維數(shù)字模型的數(shù)據(jù)庫mdb。這允許終端用戶創(chuàng)建對象組件并且將它們中的一個(gè)或多個(gè)限定為可顯露的。其還允許終端用戶(例如通過設(shè)置視點(diǎn))確定組件的圖形表示的參數(shù)以及創(chuàng)建如上所述的一個(gè)或多個(gè)顯露器。服務(wù)器執(zhí)行如上所述的處理,并再次使用網(wǎng)絡(luò)nw將對應(yīng)于組件的期望表示的圖像文件傳送至終端用戶計(jì)算機(jī)。
盡管僅僅示出了一個(gè)管理員系統(tǒng)ads和一個(gè)終端用戶系統(tǒng)eux,但是系統(tǒng)可以沒有限制地支持任意數(shù)量的管理員系統(tǒng)和/或終端用戶系統(tǒng)。類似地,在不脫離本發(fā)明的范圍的情況下,還可以在系統(tǒng)中實(shí)施多個(gè)服務(wù)器、模型數(shù)據(jù)庫。
本文所述的任何過程應(yīng)當(dāng)被理解成是表示包括用于實(shí)施特定邏輯功能或過程中的步驟的一個(gè)或多個(gè)可執(zhí)行指令的代碼的模塊、部段或部分,并且備選實(shí)施方式包括在本發(fā)明的示例性實(shí)施例的范圍內(nèi)。