通過(guò)工具的動(dòng)作模擬物體的加工的方法及其系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品的制作方法
【專(zhuān)利摘要】本發(fā)明描述了通過(guò)工具的動(dòng)作對(duì)物體的加工的計(jì)算機(jī)模擬。所述物體由邊界表示(BP)物體表示,其中,所述BP物體包括所述物體的表面的邊界表示,其中,所述動(dòng)作由一組掃掠體表示,其中,所述一組掃掠體包括限定所述一組掃掠體的表面的第一組隱函數(shù)。所述模擬包括以下步驟:確定代理物體,該代理物體具有限定所述代理物體的表面的第二組隱函數(shù);利用所述一組掃掠體來(lái)模擬所述代理物體的加工,以生成加工后的代理(MP)物體,該MP物體具有限定該MP物體的表面的第三組隱函數(shù);以及渲染所述MP物體與所述BP物體之間的布爾交集的圖像。
【專(zhuān)利說(shuō)明】通過(guò)工具的動(dòng)作模擬物體的加工的方法及其系統(tǒng)和計(jì)算機(jī)
程序產(chǎn)品
【技術(shù)領(lǐng)域】
[0001]本發(fā)明總體上涉及模擬加工,更具體地講,涉及一種利用布爾交集(Booleanintersect ion )來(lái)模擬對(duì)物體的加工的系統(tǒng)和方法。
【背景技術(shù)】
[0002]數(shù)控加工
[0003]在計(jì)算機(jī)輔助設(shè)計(jì)(CAD)和計(jì)算機(jī)輔助制造(CAM)中,模擬數(shù)控(NC)加工(例如,車(chē)削、鏜孔、鉆孔、拉削、鋸切、成形、擴(kuò)孔、銑削、攻絲、磨削)很重要。在模擬過(guò)程中,利用工具(例如,NCf先削工具)的計(jì)算機(jī)表示(representation)以及模擬加工工藝的一組動(dòng)作來(lái)編輯物體(例如,工件)的模型。
[0004]所述模擬將物體的模型和工具的表示顯現(xiàn)在顯示裝置上,以檢測(cè)部件(例如工件和工具架)之間的潛在沖突并核實(shí)物體的最終形狀。
[0005]物體的最終形狀受工具和動(dòng)作的選擇的影響。通常利用計(jì)算機(jī)輔助制造系統(tǒng)根據(jù)物體的期望的最終形狀的圖形表示來(lái)生成用于控制動(dòng)作的指令。通常使用數(shù)控編程語(yǔ)言(也稱(chēng)作預(yù)備代碼或G代碼)來(lái)實(shí)現(xiàn)所述動(dòng)作,參見(jiàn)RS274D和DIN66025/IS06983標(biāo)準(zhǔn)。
[0006]由計(jì)算機(jī)輔助制造系統(tǒng)生成的G代碼可能未能生成期望的最終形狀的精確復(fù)制。另外,工具和/或物體的動(dòng)作被NC加工系統(tǒng)的馬達(dá)控制,NC加工系統(tǒng)具有有限的速度、動(dòng)作范圍以及加速和減速能力,使得實(shí)際動(dòng)作通常未能精確地遵循NC加工指令。
[0007]物體的實(shí)際最終形狀與物體的期望的最終形狀之間的不一致可能較小,并且難以觀察到。在一些情況下,這些不一致導(dǎo)致物體的最終形狀的表面中的不期望的鑿痕或刻痕,這些鑿痕或刻痕的深度和寬度在幾微米量級(jí),長(zhǎng)度在幾十微米量級(jí)。
[0008]通常,在加工期望的部件之前,通過(guò)加工測(cè)試物體(例如,由較軟并且較便宜的材料制成的工件)來(lái)測(cè)試一組NC機(jī)器指令。如果測(cè)試工件的目視檢查定位出測(cè)試工件中的不期望的不一致,則對(duì)應(yīng)地修改NC加工指令。
[0009]然而,這種手動(dòng)測(cè)試耗時(shí)且昂貴。加工單個(gè)測(cè)試工件的時(shí)間可能在幾小時(shí)量級(jí),在獲得可接受的一組NC機(jī)器指令之前可能需要多次迭代。因此,可取的是,利用基于計(jì)算機(jī)的模擬和渲染來(lái)測(cè)試這些不一致。
[0010]工具
[0011]圖1A示出NC加工中使用的一組典型工具102、104、106和108。當(dāng)工具相對(duì)于工件110移動(dòng)時(shí),工具從工件切除材料。這里,工具102、104、106和108從工件去除與表面112、114、116和118對(duì)應(yīng)的材料(通常稱(chēng)作“掃掠體(sw印t volume)”)。各個(gè)工具所去除的材料的形狀由工具的形狀以及工具相對(duì)于工件的路徑來(lái)確定。
[0012]掃掠體
[0013]在加工過(guò)程中,工具根據(jù)工具和/或工件的規(guī)定動(dòng)作(即,工具路徑或物體路徑)來(lái)相對(duì)于工件移動(dòng),其中,所述路徑可包括關(guān)于工具相對(duì)于工件的相對(duì)位置、取向以及其它形狀數(shù)據(jù)的信息。
[0014]隨著工具沿著工具路徑移動(dòng),工具切出掃掠體。在加工過(guò)程中,隨著工具沿著工具路徑移動(dòng),由工具的掃掠體橫切的一部分體積的工件被去除。這種材料去除可被建模為構(gòu)造立體幾何(CSG)差分運(yùn)算,其中,利用掃掠體從工件的CSG減法運(yùn)算來(lái)從工件去除工件的一部分。
[0015]圖1B示出沿著路徑152移動(dòng)的形狀150的掃掠體160。路徑152指定作為時(shí)間的函數(shù)的形狀150的特定點(diǎn)的位置。該路徑可指定作為時(shí)間的函數(shù)的形狀的取向156、157和158。該路徑還可指定作為時(shí)間的函數(shù)的形狀的比例或形狀的任意變換。
[0016]在圖1B中,隨著形狀沿著路徑157移動(dòng),形狀150的原始位置、取向和幾何形狀變換為形狀154的最終位置、取向和幾何形狀。
[0017]圖2A示出工具202沿著直線(xiàn)204移動(dòng)的直線(xiàn)路徑。
[0018]圖2B示出工具202的頂端210沿著圓弧212移動(dòng)的圓弧路徑,工具的原始軸向214變換為路徑末端處的最終軸向216。
[0019]圖2C示出工具202的頂端210沿著曲線(xiàn)220移動(dòng)的彎曲路徑。
[0020]其它可能的路徑形式包括將工具定位于點(diǎn),使工具沿著一系列線(xiàn)(稱(chēng)作折線(xiàn))移動(dòng),使工具沿著螺旋或盤(pán)旋曲線(xiàn)移動(dòng),使工具沿著諸如二次貝塞爾(Bezier)曲線(xiàn)或三次貝塞爾曲線(xiàn)的多項(xiàng)式曲線(xiàn)或者一系列多項(xiàng)式曲線(xiàn)(稱(chēng)作分段多項(xiàng)式曲線(xiàn))等移動(dòng)??煽紤]能夠模擬的任何形式的路徑,包括通過(guò)過(guò)程定義的路徑,例如受工件的形狀或材料組成影響的路徑。
[0021]距離場(chǎng)
[0022]物體的距離場(chǎng)d(p)是標(biāo)量場(chǎng),其在空間中的點(diǎn)p處的值是從p到物體表面的距離?,F(xiàn)有技術(shù)中已知有許多可能的距離場(chǎng),但是最常用的是歐幾里得距離場(chǎng),其中P處的距離場(chǎng)值是從P到物體表面的最小直線(xiàn)距離。另外,距離場(chǎng)可以帶符號(hào),以區(qū)分物體的外側(cè)、內(nèi)側(cè)和邊界,例如,d(p)>0為內(nèi)側(cè),d(p)〈0、d(p)=0在表面。
[0023]另外,距離場(chǎng)在p點(diǎn)處的梯度向量指向最小距離的方向,在物體的表面處,歸一化梯度向量等于表面的法向量。距離場(chǎng)是一種形式的隱函數(shù),并且是用于渲染和編輯形狀的有效表示。
[0024]空間中特別關(guān)注的點(diǎn)p是距離場(chǎng)的值d等于零(S卩,d=0)的點(diǎn)。如本文所述,距離場(chǎng)為零的點(diǎn)的集合(即,距離場(chǎng)的零等值面)是物體的邊界(例如,工件的邊界)或掃掠體的邊界。
[0025]自適應(yīng)采樣距離場(chǎng)(ADF)使用指向細(xì)節(jié)的采樣,以提供距離場(chǎng)的空間和時(shí)間有效表示。ADF將距離場(chǎng)的值樣本存儲(chǔ)在單元的空間層次中,例如八叉樹(shù)。單元的空間層次是樹(shù)型數(shù)據(jù)結(jié)構(gòu),其中,稱(chēng)作根單元的初始節(jié)點(diǎn)包圍ADF的整個(gè)體積??臻g層次中的單元可以是樹(shù)型數(shù)據(jù)結(jié)構(gòu)的末端葉(即,葉單元),或者可包含更小的子單元,這些單元稱(chēng)作中間單元。空間層次中的葉單元可被標(biāo)記為內(nèi)部葉單元(即,完全在邊界的內(nèi)部)、外部葉單元(即,完全在邊界的外部)或者邊界葉單元(即,包含物體的邊界)。各個(gè)單元通過(guò)尺寸和位置來(lái)表征,所述尺寸和位置使得能夠容易地計(jì)算單元拐角處的頂點(diǎn),進(jìn)而限定單元的邊界框。
[0026]空間層次中的各個(gè)單元與父單元和任何子單元這二者在存儲(chǔ)器或表中的地址或索引關(guān)聯(lián)。因此常常將單元的空間層次描述為譜系樹(shù),其中,單元具有祖先,從而穿過(guò)單元的父單元和祖單元回溯到根單元,單元可具有后代,例如子單元和孫單元,直至到達(dá)葉單
J Li ο
[0027]通常通過(guò)遞歸方法來(lái)訪問(wèn)單元的空間層次內(nèi)的信息,其中,信息查詢(xún)開(kāi)始于根單元,然后通過(guò)根據(jù)一些條件選擇樹(shù)型數(shù)據(jù)結(jié)構(gòu)的特定分支(即,子單元)來(lái)向后代單元遞歸或分支。例如,尋找包含空間中的特定點(diǎn)的葉單元的方法開(kāi)始于根單元,然后向包含該點(diǎn)的各個(gè)后代單元的子單元遞歸,直至到達(dá)包含該點(diǎn)的葉單元。
[0028]單元的空間層次中的各個(gè)單元可包含距離數(shù)據(jù)和重構(gòu)方法以用于重構(gòu)與該單元關(guān)聯(lián)的那部分距離場(chǎng)。距離數(shù)據(jù)可包括在單元內(nèi)的一組點(diǎn)處(例如,在單元的邊界框的頂點(diǎn)處)的距離場(chǎng)的值以及距離場(chǎng)的梯度和偏導(dǎo)數(shù)??筛鶕?jù)需要從距離數(shù)據(jù)重構(gòu)單元內(nèi)的任何點(diǎn)處的距離場(chǎng),以減少存儲(chǔ)器和計(jì)算需求。
[0029]ADF可用于利用CSG運(yùn)算模擬加工??梢詫⒁庸さ墓ぜ凸ぞ弑硎緸锳DF。模擬的加工處理可(例如)通過(guò)修改工件的ADF來(lái)明確地生成模擬工件的ADF。在這種情況下,可通過(guò)模擬加工來(lái)修改與單元關(guān)聯(lián)的距離數(shù)據(jù),但是重構(gòu)方法可保持不變。
[0030]另選地,可將模擬工件隱含地表不為復(fù)合ADF。與上述傳統(tǒng)ADF不同,復(fù)合ADF不將距離場(chǎng)值樣本存儲(chǔ)在各個(gè)單元內(nèi)。相反,復(fù)合ADF在單元的空間層次內(nèi)存儲(chǔ)通過(guò)分析或數(shù)值手段計(jì)算單元內(nèi)的任何點(diǎn)處的距離場(chǎng)的精確值所需的各個(gè)單元的一組參數(shù)。所存儲(chǔ)的參數(shù)可包括(例如)在加工工具的陣列中的一組索引,所述加工工具的陣列列出工具的類(lèi)型、形狀和相關(guān)尺寸。另外,所存儲(chǔ)的參數(shù)可包括(例如)在動(dòng)作的陣列中的一組索引,所述動(dòng)作的陣列提供動(dòng)作的類(lèi)型、動(dòng)作的開(kāi)始點(diǎn)和結(jié)束點(diǎn)以及任何其它有用信息。另外,所存儲(chǔ)的參數(shù)可包括(例如)用于組合距離場(chǎng)的算子(諸如用于加工模擬的CSG減法)。所述參數(shù)可用于確定重構(gòu)函數(shù),該重構(gòu)函數(shù)可組合地使用,以計(jì)算或重構(gòu)單元內(nèi)的掃掠體距離場(chǎng)。掃掠體距離場(chǎng)被定義為表示通過(guò)使加工工具沿著路徑移動(dòng)而生成的掃掠體,其中,根據(jù)掃掠體重構(gòu)方法來(lái)以連續(xù)方式定義掃掠體距離場(chǎng)。掃掠體重構(gòu)方法可以重構(gòu)采樣點(diǎn)處的掃掠體距尚場(chǎng)。
[0031]圖3示出2D復(fù)合ADF300,其包括表示工作空間的體積的部分的單元(例如301、302和303)的空間層次,以及其邊界被示出的距離場(chǎng)。在此示例中,距離場(chǎng)304-307的邊界是定義初始工件的邊界的平面。距離場(chǎng)308-310是表示球端工具106的掃掠的三個(gè)距離場(chǎng)的邊界。復(fù)合ADF中的各個(gè)單元與表示原始工件和工具的掃掠體的一組距離場(chǎng)的子集關(guān)聯(lián)。例如,與單元311關(guān)聯(lián)的一組距離場(chǎng)的子集包括距離場(chǎng)304、308和309,這些距離場(chǎng)一起確定單元311內(nèi)的復(fù)合ADF表面。諸如CSG差分的過(guò)程化重構(gòu)方法也與單元關(guān)聯(lián),以用于組合該組距離場(chǎng)的子集以重構(gòu)工件的復(fù)合距離場(chǎng)。復(fù)合表面被定義為工件的模擬邊界,其包括原始工件距離場(chǎng)和掃掠工具距離場(chǎng)的邊界的補(bǔ)片。
[0032]優(yōu)選的是,各個(gè)單元的存儲(chǔ)的距離場(chǎng)參數(shù)僅包括對(duì)實(shí)際形成加工后的工件的復(fù)合邊界的距離場(chǎng)的引用,而非包括對(duì)模擬中的所有距離場(chǎng)或者其邊界的一部分在單元內(nèi)的所有距離場(chǎng)的引用。這意味著執(zhí)行幾何運(yùn)算(例如,渲染)所需的計(jì)算量可最小化。
[0033]復(fù)合ADF的渲染
[0034]復(fù)合ADF的渲染采用所有3D計(jì)算機(jī)圖形所共有的一些方法和術(shù)語(yǔ)。將3D物體渲染為圖像涉及通過(guò)變換矩陣相關(guān)的多個(gè)坐標(biāo)系。如圖4所示,可在齊次世界空間坐標(biāo)系(以下稱(chēng)作世界空間)(其原點(diǎn)和取向由軸線(xiàn)403示出)內(nèi)定義復(fù)合ADF401 (其原點(diǎn)和取向由軸線(xiàn)402示出)。世界空間坐標(biāo)常常采用諸如毫米或英里的真實(shí)尺寸,可使用稱(chēng)作ADF矩陣的4x4矩陣來(lái)將ADF坐標(biāo)映射至世界空間坐標(biāo)。相對(duì)于世界空間坐標(biāo)處于特定位置和取向的虛擬相機(jī)404定義眼睛空間坐標(biāo)系(其原點(diǎn)和取向由軸線(xiàn)405給出)??衫?x4觀察矩陣來(lái)將世界空間中的點(diǎn)的坐標(biāo)變換到眼睛空間中。
[0035]視錐臺(tái)406與相機(jī)關(guān)聯(lián),視錐臺(tái)406劃定能夠被相機(jī)看見(jiàn)的那部分世界空間。如果相機(jī)模型使用透視投影來(lái)復(fù)制與越近的物體相比,越遠(yuǎn)的物體看起來(lái)越小的日常體驗(yàn),則視錐臺(tái)為棱錐臺(tái)406的形狀。錐臺(tái)的頂角由相機(jī)的視場(chǎng)確定。存在諸如正投影的替代投影變換,其中,視錐臺(tái)為矩形形狀。
[0036]可使用4x4投影矩陣來(lái)從眼睛空間坐標(biāo)變換到裁剪(clip)空間坐標(biāo)。視錐臺(tái)的最小深度407和最大深度408傳統(tǒng)上分別稱(chēng)作近裁剪平面和遠(yuǎn)裁剪平面。
[0037]在渲染的圖像409中,視錐臺(tái)內(nèi)的所有3D物體均可見(jiàn)。從裁剪空間到屏幕空間的變換由視口矩陣確定,所述視口矩陣以像素為單位限定圖像原點(diǎn)以及圖像寬度和高度。圖像409可包括存儲(chǔ)與各個(gè)圖像像素關(guān)聯(lián)的各種值的多個(gè)存儲(chǔ)器陣列(稱(chēng)作幀緩沖器)。這些存儲(chǔ)器陣列中最重要的是保存各個(gè)像素的紅色、綠色和藍(lán)色顏色分量以及可能的透明度(或阿爾法(alpha))的顏色緩沖器。在渲染圖像之前,通常將顏色緩沖器清除為選擇的背景顏色(例如,黑色),以去除與緩沖器的早先使用關(guān)聯(lián)的任何顏色值。
[0038]另一常用緩沖器是z緩沖器,其保存與屏幕空間中的各個(gè)像素關(guān)聯(lián)的深度,使得近裁剪平面處的物體具有深度0.0,遠(yuǎn)裁剪平面處的物體具有深度1.0,例如,所述深度被歸一化至范圍[0,1]。深度緩沖器的功能是實(shí)現(xiàn)渲染的圖像中的正確遮擋(如下面所述)。在渲染圖像之前,通常將Z緩沖器清除為特定的大深度值(通常為1.0)。
[0039]將復(fù)合ADF渲染為圖像可通過(guò)多個(gè)方法來(lái)執(zhí)行,例如物體順序光線(xiàn)投射或圖像順序光線(xiàn)投射,如圖4中的2-D示意性示出的。例如,在圖像順序光線(xiàn)投射方法過(guò)程中,光線(xiàn)在計(jì)算上從圖像中的各個(gè)像素發(fā)射并穿過(guò)視錐臺(tái)傳播,直至光線(xiàn)與復(fù)合ADF的邊界相交或者到達(dá)視錐臺(tái)的遠(yuǎn)裁剪平面。光線(xiàn)可等同于具有類(lèi)似時(shí)間的坐標(biāo)t的參數(shù)線(xiàn),使得光線(xiàn)在3D空間中的位置由尺⑴二凡+以限定,其中Ro是光線(xiàn)的原點(diǎn),Rd是光線(xiàn)的方向向量。光線(xiàn)通過(guò)首先尋找光線(xiàn)相交的具有最小t的最近單元來(lái)穿過(guò)復(fù)合ADF傳播。如果最近單元是中間單元,則針對(duì)光線(xiàn)相交遞歸測(cè)試中間單元的子單元,直至光線(xiàn)與最近葉單元相交。如果該葉單元不是邊界葉單元,則該單元不包括復(fù)合ADF的邊界。然后,所述方法沿著光線(xiàn)尋找下一葉單元。
[0040]作為示例,光線(xiàn)411穿過(guò)視錐臺(tái)傳播,而未與任何單元相交。因此,與光線(xiàn)411對(duì)應(yīng)的像素仍舊設(shè)置為背景顏色。光線(xiàn)412與空間層次的根單元相交。在此示例中,根單元是中間單元,并且全部為直接子單元。最終,遞歸到達(dá)單元425,該單元425是外部葉單元。然后,所述方法沿著光線(xiàn)412搜索下一單元。在此示例中,沒(méi)有其它單元,因此,與光線(xiàn)412對(duì)應(yīng)的像素保持背景顏色。
[0041]現(xiàn)在考慮與屏幕像素414關(guān)聯(lián)的光線(xiàn)413。在與中間單元和外部葉單元相交之后,光線(xiàn)413與單元415相交,該單元415是邊界葉單元并在圖4的小圖中放大示出。單元415包括距離場(chǎng)416、417和418的邊界,其中,416是表示原始工件表面的平面距離場(chǎng),417和418是與球端工具106的兩個(gè)掃掠對(duì)應(yīng)的距離場(chǎng)的邊界。確定光線(xiàn)是否與單元內(nèi)的復(fù)合ADF的邊界相交的處理可涉及以下步驟:首先分別確定光線(xiàn)與單元的前邊界面419和單元的后邊界面420的交點(diǎn)的光線(xiàn)坐標(biāo)tfMnt和tbac;k。如果tfMnt>tbac;k,則光線(xiàn)錯(cuò)過(guò)單元,并且處理下一光線(xiàn)。
[0042]對(duì)于與單元相交的光線(xiàn),可以開(kāi)始圖像順序光線(xiàn)投射的第二步驟:確定(例如)光線(xiàn)413分別與單元415所關(guān)聯(lián)的距離場(chǎng)418、416和417的邊界相交的交點(diǎn)421、422和423。由于模擬的減法性質(zhì),點(diǎn)P僅在復(fù)合ADF的表面上。點(diǎn)p在一個(gè)距離場(chǎng)的邊界上,所有其它距離場(chǎng)的內(nèi)偵彳,SP,當(dāng)且僅當(dāng)φ(ρ)=0時(shí),對(duì)于i, j e [0,N), i關(guān)j, dj(p)>0,其中N是單元內(nèi)的距離場(chǎng)邊界的數(shù)量。因此,可針對(duì)交點(diǎn)421-423確定距離場(chǎng)416-418的值,滿(mǎn)足上述條件的具有光線(xiàn)參數(shù)t的最小值的點(diǎn)是該光線(xiàn)的復(fù)合ADF表面點(diǎn)。在此示例中,點(diǎn)423滿(mǎn)足所述條件,在3D計(jì)算機(jī)圖形的術(shù)語(yǔ)中稱(chēng)作像素片段。
[0043]在確定像素片段(例如,點(diǎn)423)之后,從距離場(chǎng)的梯度計(jì)算表面的法向量。從表面的材料性質(zhì)(例如,環(huán)境色、漫射色和鏡面反射色,以及材料光澤)來(lái)確定與光線(xiàn)關(guān)聯(lián)的像素的顏色和亮度,其通常利用考慮表面法向量與照明向量的點(diǎn)積以及光色的照明模型(例如,馮(Phong)或布林(Blinn))來(lái)修改。通常,馮照明用于塑料,布林照明用于金屬。最后,將片段的顏色和z值分別寫(xiě)入顏色緩沖器和z緩沖器中。
[0044]通常在屏幕或圖像坐標(biāo)系中處理ADF或復(fù)合ADF的片段的坐標(biāo)。然而,本領(lǐng)域技術(shù)人員將容易認(rèn)識(shí)到,可通過(guò)利用視口、投影和觀察變換矩陣的數(shù)學(xué)反演的逆變換來(lái)將片段的坐標(biāo)從屏幕空間變換回世界空間。片段在世界坐標(biāo)系中的坐標(biāo)對(duì)應(yīng)于世界坐標(biāo)系中的ADF的表面。
[0045]邊界表示
[0046]復(fù)合ADF并非立體物體的僅有的可能表示。大多數(shù)CAD軟件中最常用的表示是邊界表示或B-rep。b-rep是通過(guò)一組非搭接面(其并集表示物體的邊界)的物體的表示。邊界表示具有兩部分:頂點(diǎn)、邊緣和面的連接性和取向的拓?fù)涿枋?,以及將這些表面元素嵌入空間中的幾何描述。計(jì)算機(jī)圖形中常用的三角網(wǎng)格是邊界表示的示例。在三角網(wǎng)格中,各個(gè)面是以3條邊為界并連接3個(gè)頂點(diǎn)的三角形。包含三角網(wǎng)格的所有頂點(diǎn)在世界空間中的位置的表提供邊界表不的幾何描述,第二表提供邊界表不的拓?fù)涿枋?,在第二表中,各個(gè)條目是形成三角網(wǎng)格的三角形的3個(gè)頂點(diǎn)的索引。
[0047]要求邊界表示是閉合的,即,邊界表示不能有任何間隙或孔洞。另外,b-rep必須拓?fù)渖险_,即,b-rep不能有未與其它邊或面連接的任何懸邊或懸面,以形成閉合表面。
[0048]圖5示出四面體的示例傳統(tǒng)邊界表示??赏ㄟ^(guò)四個(gè)頂點(diǎn)、六條邊和四個(gè)三角面來(lái)如下描述四面體:頂點(diǎn)為501、502、503和504 ;邊511是具有端頂點(diǎn)501和502的直線(xiàn);邊512是具有端頂點(diǎn)502和503的直線(xiàn);邊512是具有端頂點(diǎn)502和503的直線(xiàn);邊513是具有端頂點(diǎn)503和504的直線(xiàn);邊514是具有端頂點(diǎn)501和504的直線(xiàn);邊515是具有端頂點(diǎn)502和504的直線(xiàn);面520是以邊512、513、515為界的三角形;面521是以邊511、515、514為界的三角形;面522是以邊511、516、512為界的三角形;并且面523是以邊513、516、514為界的三角形。
[0049]邊界表示明確地存儲(chǔ)物體的邊界表面。然而,通過(guò)面中的頂點(diǎn)的排序來(lái)隱含地確定面的指向物體內(nèi)部的一側(cè)。在此示例中,使用常用的右手排序,其中,右手的手指按照頂點(diǎn)的排序方向取向,拇指指向面的向外方向。確定空間中的點(diǎn)在邊界表示的內(nèi)部還是外部的方法是從該點(diǎn)發(fā)出光線(xiàn)并對(duì)光線(xiàn)在到達(dá)特定大距離(該距離足夠大以確保在邊界表示的外側(cè))之前相交的面的數(shù)量進(jìn)行計(jì)數(shù)。如果相交面的數(shù)量為偶數(shù),則點(diǎn)在邊界表示的外側(cè),否則點(diǎn)在內(nèi)側(cè)。
[0050]邊界表示不限于直邊和平面。邊界表示還可包括(例如)諸如三次B樣條的參數(shù)曲線(xiàn)以及諸如貝塞爾補(bǔ)片的面。這些高次曲線(xiàn)和表面使得能夠以緊湊方式表示帶有自由邊界的立體。
[0051]邊界表示的渲染可通過(guò)3D圖形硬件利用諸如OpenGL的圖形應(yīng)用程序接口(API)來(lái)執(zhí)行,并且涉及上文在渲染復(fù)合ADF的背景下描述的相同的坐標(biāo)系和變換。按照物體順序方式單獨(dú)地渲染邊界表示的各個(gè)面。
[0052]在渲染過(guò)程中,可將邊界的各個(gè)面轉(zhuǎn)換為一個(gè)或更多個(gè)平面多邊形,可將所述平面多邊形傳遞給圖形API。圖形處理器可通過(guò)與觀察變換矩陣相乘來(lái)將多邊形頂點(diǎn)的位置從世界空間變換到眼睛空間,然后通過(guò)與投影矩陣相乘來(lái)將位置進(jìn)一步變換到裁剪空間。
[0053]另外,通過(guò)觀察矩陣的上3x3矩陣的逆轉(zhuǎn)置來(lái)變換各個(gè)頂點(diǎn)處定義的表面的法向量。然后,通過(guò)丟棄未全部在裁剪體積(x,y,z) e [-1, 1]內(nèi)的任何面來(lái)進(jìn)行裁剪。部分地在裁剪體積內(nèi)的任何面被裁剪至體積邊界。然后,利用視口矩陣將頂點(diǎn)投影到屏幕空間中。這些頂點(diǎn)的(x, y, z)坐標(biāo)現(xiàn)在分別在[0, screen_width)和[0, screen_height)以及[0.0,1-0]的范圍內(nèi)。然后,將變換的面光柵化;對(duì)于以變換的面為界的屏幕區(qū)域內(nèi)的各個(gè)像素,生成邊界表示的片段,其位置和顏色由面頂點(diǎn)的位置和顏色的雙線(xiàn)性插值來(lái)確定。執(zhí)行z測(cè)試,其中,將各個(gè)片段的z值與已經(jīng)在z緩沖器中的值進(jìn)行比較,如果該值較小,即,更接近,則用片段值覆蓋當(dāng)前z值和顏色,否則丟棄該片段。
[0054]可針對(duì)各個(gè)片段根據(jù)各個(gè)頂點(diǎn)處定義的變換的法向量來(lái)確定法向量,并將其插值到片段的屏幕位置??筛鶕?jù)材料性質(zhì)(例如,環(huán)境色、漫射色和鏡面反射色,以及材料光澤)來(lái)確定片段的顏色和亮度,其通常利用考慮插值的變換法向量與照明向量的點(diǎn)積以及光色的照明模型(例如,馮或布林)來(lái)進(jìn)行修改。
[0055]加工中使用的許多工件開(kāi)始時(shí)是簡(jiǎn)單形狀,例如矩形立體或圓柱體。然而,另一類(lèi)加工操作涉及鑄造工件的精整。鑄造工件或鑄件是通過(guò)將熔融金屬傾倒到模具中以形成更復(fù)雜的初始工件而制成的。常用模具材料是與弱粘合劑混合的砂子,其本身從其它模具澆鑄成砂模。砂子的優(yōu)點(diǎn)在于便宜和耐熱,并且可通過(guò)簡(jiǎn)單地使砂子裂開(kāi)來(lái)將成品鑄件從砂模容易地取出。
[0056]由于砂子的相對(duì)粗糙的紋理,砂模鑄件表面粗糙,尺寸精度低。然而,工件的一些表面需要表面光滑且尺寸精度高。例如,汽車(chē)發(fā)動(dòng)機(jī)組通過(guò)砂模鑄造制成,在汽缸內(nèi)必須非常精確且光滑,使得活塞環(huán)能夠密封汽缸并且活塞正確地移動(dòng)。同樣,安裝孔必須帶螺紋,墊圈連接單獨(dú)的組件的密封表面必須表面光滑且平坦。
[0057]為了實(shí)現(xiàn)光滑的表面和精確的尺寸,鑄件的一些表面或所有表面必須被加工。因此,重要的是,加工模擬器能夠以鑄造工件的表示開(kāi)始。然而,鑄造工件的表面表示可能與工具的動(dòng)作的表示不相容。例如,鑄造工件的表面可由明確表示(例如,CAD邊界表示)來(lái)限定,而工具的動(dòng)作可由具有隱含表示(例如,ADF表示)的表面限定。
[0058]傳統(tǒng)方法將隱含物體表示轉(zhuǎn)換為明確表示,或者相反。然而,轉(zhuǎn)換處理耗時(shí),并且可能具有大的存儲(chǔ)器需求。另外,在自由表面的情況下,轉(zhuǎn)換可能導(dǎo)致精度的損失。因此,本領(lǐng)域中存在解決上述問(wèn)題的需要。
【發(fā)明內(nèi)容】
[0059]本發(fā)明的目的在于提供一種通過(guò)工具模擬對(duì)物體進(jìn)行加工的方法。本發(fā)明的另一目的在于提供這樣一種方法,該方法提供物體的模型的加工模擬,而不修改模型本身。本發(fā)明的另一目的在于提供一種適合于利用具有一種類(lèi)型的表面表示的一組掃掠體來(lái)對(duì)具有另一類(lèi)型的表面表示的物體進(jìn)行加工模擬的方法。
[0060]本發(fā)明的一些實(shí)施方式基于這樣的認(rèn)識(shí):代替利用(例如)距離場(chǎng)表示的掃掠體來(lái)對(duì)具有(例如)表面的邊界表示的物體的模型進(jìn)行加工模擬,可創(chuàng)建距離場(chǎng)表示的代理物體,對(duì)該代理物體執(zhí)行加工模擬以得到加工后的代理物體?,F(xiàn)在,對(duì)物體的模型進(jìn)行加工的問(wèn)題降低至確定加工后的代理物體與物體的模型之間的布爾交集。
[0061]此外,一些實(shí)施方式基于另一認(rèn)識(shí):對(duì)于一些應(yīng)用,沒(méi)有必要將一個(gè)表示轉(zhuǎn)換為另一表示。相反,將不同表示共同渲染以使得所述表示彼此正確地合成就足夠了。兩個(gè)表示的共同渲染生成包括正確遮擋的表示加工模擬的圖像。
[0062]因此,本發(fā)明的一個(gè)實(shí)施方式公開(kāi)了一種通過(guò)工具的動(dòng)作對(duì)物體的加工進(jìn)行計(jì)算機(jī)模擬的方法,其中,所述物體由邊界表示(BP)物體表示,其中,所述BP物體包括所述物體的表面的邊界表示,其中,所述動(dòng)作由一組掃掠體表示,其中,所述一組掃掠體包括限定所述一組掃掠體的表面的第一組隱函數(shù)。所述方法的步驟由處理器執(zhí)行。所述方法包括以下步驟:確定代理物體,該代理物體具有限定該代理物體的表面的第二組隱函數(shù);利用所述一組掃掠體來(lái)模擬對(duì)所述代理物體的加工,以生成加工后的代理(MP)物體,該MP物體具有限定該MP物體的表面的第三組隱函數(shù);渲染所述MP物體與所述BP物體之間的布爾交集的圖像;以及將所述圖像存儲(chǔ)到存儲(chǔ)器中。
[0063]此實(shí)施方式的變型可包括以下可選特征。例如,可從觀察方向執(zhí)行所述渲染,隱函數(shù)可以從由以下各項(xiàng)構(gòu)成的組中選擇出:距離場(chǎng)、采樣距離場(chǎng)、自適應(yīng)采樣距離場(chǎng)、復(fù)合自適應(yīng)采樣距離場(chǎng)以及它們的組合。
[0064]另外,所述BP物體的表面可包括在世界坐標(biāo)系中的BP物體片段,其中,所述MP物體的表面包括在所述世界坐標(biāo)系中的MP物體片段。所述渲染還可包括以下步驟:確定在所述MP物體內(nèi)部的一組BP物體片段;確定在所述BP物體內(nèi)部的一組MP物體片段;以及將所述一組BP物體片段和所述一組MP物體片段轉(zhuǎn)換為圖像坐標(biāo)系中的形成所述圖像的至少一
部分的一組像素。
[0065]確定所述一組BP物體片段的步驟可包括以下步驟:確定從BP物體片段到所述MP物體的表面的距離,其中,在所述世界坐標(biāo)系中確定所述距離;如果所述距離表明所述BP物體片段在所述MP物體內(nèi)部,則將所述BP物體片段添加到所述一組BP物體片段中;以及如果所述距離表明所述BP物體片段在所述MP物體外部,則將所述BP物體片段添加到所述一組加工后的BP物體片段中。
[0066]確定所述一組MP物體片段的步驟可包括以下步驟:在所述圖像坐標(biāo)系中確定MP物體片段的深度;以及如果所述深度在所述BP物體內(nèi)部的至少一個(gè)深度范圍內(nèi),則將所述MP物體片段添加到所述一組MP物體片段中,其中,在所述圖像坐標(biāo)系中確定所述深度范圍。
[0067]另外地或另選地,確定所述一組MP物體片段的步驟可包括以下步驟:確定與所述一組加工后的BP物體片段中的BP物體片段對(duì)應(yīng)的MP物體片段;在所述圖像坐標(biāo)系中確定各個(gè)對(duì)應(yīng)MP物體片段的深度;如果所述深度在所述BP物體內(nèi)部的至少一個(gè)深度范圍內(nèi),則將對(duì)應(yīng)MP物體片段添加到所述一組MP物體片段中,其中,在所述圖像坐標(biāo)系中確定所述深度范圍;以及在所述圖像坐標(biāo)系中確定所述MP物體片段與所述一組加工后的BP物體片段中的BP物體片段之間的對(duì)應(yīng)關(guān)系。
[0068]在一些變型中,所述方法還可包括以下步驟:針對(duì)與所述一組加工后的BP物體片段中的BP物體片段對(duì)應(yīng)的像素設(shè)置像素標(biāo)志,使得所述像素標(biāo)志確定所述MP物體片段與所述BP物體片段之間的對(duì)應(yīng)關(guān)系。另外地或另選地,所述方法可包括以下步驟:針對(duì)與所述一組加工后的BP物體片段中的BP物體片段對(duì)應(yīng)的所述BP物體的至少一個(gè)面設(shè)置面標(biāo)志,以生成至少一個(gè)加工后的面;以及僅針對(duì)所述加工后的面確定所述BP物體內(nèi)部的所述深度范圍。
[0069]在此實(shí)施方式的一個(gè)變型中,所述方法包括以下步驟:在世界坐標(biāo)系中確定在所述BP物體的表面上的BP物體片段;在所述世界坐標(biāo)系中確定在所述MP物體內(nèi)部的一組BP物體片段以及在所述MP物體外部的一組加工后的BP物體片段;在所述圖像坐標(biāo)系中確定所述BP物體的一組加工后的面,各個(gè)加工后的面對(duì)應(yīng)于所述一組加工后的BP物體片段中的至少一個(gè)BP物體片段;在所述圖像坐標(biāo)系中確定在所述BP物體內(nèi)部的一組深度范圍,其中,針對(duì)至少一個(gè)加工后的面確定至少一個(gè)深度范圍;在所述世界坐標(biāo)系中確定在所述MP物體的表面上的MP物體片段;在所述圖像坐標(biāo)系中確定與所述一組加工后的BP物體片段中的BP物體片段對(duì)應(yīng)的MP物體片段;如果對(duì)應(yīng)MP物體片段在所述圖像坐標(biāo)系中的深度在所述一組深度范圍當(dāng)中的至少一個(gè)深度范圍內(nèi),則將所述對(duì)應(yīng)MP物體片段添加到所述一組MP物體片段中;以及將所述一組BP物體片段和所述一組MP物體片段轉(zhuǎn)換為圖像坐標(biāo)系中的形成所述圖像的至少一部分的一組像素。上述實(shí)施方式可利用處理器來(lái)實(shí)現(xiàn)。
[0070]本發(fā)明的另一實(shí)施方式公開(kāi)了一種通過(guò)工具的動(dòng)作執(zhí)行對(duì)物體的加工的計(jì)算機(jī)模擬的計(jì)算機(jī)系統(tǒng),其中,所述物體由物體的模型表示,其中,所述動(dòng)作由一組掃掠體表示,所述計(jì)算機(jī)系統(tǒng)包括處理器,該處理器被配置為:確定代理物體,使得所述代理物體的形狀至少外接所述物體的所述模型的形狀;利用所述一組掃掠體來(lái)模擬對(duì)所述代理物體的加工,以生成加工后的代理物體;以及渲染所述加工后的代理物體與所述物體的所述模型之間的布爾交集的圖像。
[0071]在所述計(jì)算機(jī)系統(tǒng)中,所述物體的所述模型的表面的表示和所述一組掃掠體的表面的表示可以是不同類(lèi)型的表示或相同類(lèi)型的表示。
[0072]另一實(shí)施方式公開(kāi)了一種通過(guò)工具的動(dòng)作執(zhí)行對(duì)物體的加工的計(jì)算機(jī)模擬的計(jì)算機(jī)程序產(chǎn)品,其中,所述物體由邊界表示(BP)物體表示,其中,所述BP物體包括所述物體的表面的邊界表示,其中,所述動(dòng)作由一組掃掠體表示,其中,所述一組掃掠體包括限定所述一組掃掠體的表面的第一組隱函數(shù),所述計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括利用該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)具體實(shí)現(xiàn)的計(jì)算機(jī)可用的程序代碼,其中,所述程序代碼被配置為:確定代理物體,該代理物體具有限定所述代理物體的表面的第二組隱函數(shù);利用所述一組掃掠體模擬對(duì)所述代理物體的加工,以生成加工后的代理(MP)物體,該MP物體具有限定該MP物體的表面的第三組隱函數(shù);渲染所述MP物體與所述BP物體之間的布爾交集的圖像;以及將所述圖像存儲(chǔ)到存儲(chǔ)器中。[0073]所述計(jì)算機(jī)程序產(chǎn)品可使所述程序代碼還被配置為:在世界坐標(biāo)系中確定在所述BP物體的表面上的BP物體片段;在所述世界坐標(biāo)系中確定在所述MP物體內(nèi)部的一組BP物體片段以及在所述MP物體外部的一組加工后的BP物體片段;在所述圖像坐標(biāo)系中確定所述BP物體的一組加工后的面,各個(gè)加工后的面對(duì)應(yīng)于所述一組加工后的BP物體片段中的至少一個(gè)BP物體片段;在所述圖像坐標(biāo)系中確定在所述BP物體內(nèi)部的一組深度范圍,其中,針對(duì)至少一個(gè)加工后的面確定至少一個(gè)深度范圍;在所述世界坐標(biāo)系中確定在所述MP物體的表面上的MP物體片段;在所述圖像坐標(biāo)系中確定與所述一組加工后的BP物體片段中的BP物體片段對(duì)應(yīng)的MP物體片段;如果對(duì)應(yīng)MP物體片段在所述圖像坐標(biāo)系中的深度在所述一組深度范圍當(dāng)中的至少一個(gè)深度范圍內(nèi),則將所述對(duì)應(yīng)MP物體片段添加到所述一組MP物體片段中;以及將所述一組BP物體片段和所述一組MP物體片段轉(zhuǎn)換為圖像坐標(biāo)系中的形成所述圖像的至少一部分的一組像素。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0074]圖1A是用于加工物體的示例工具以及工件的一部分的傳統(tǒng)表示的示意圖;
[0075]圖1B是通過(guò)沿著彎曲路徑掃掠2D形狀確定的掃掠體的示意圖;
[0076]圖2A是工具的傳統(tǒng)不同路徑中的一個(gè)的示意圖;
[0077]圖2B是工具的傳統(tǒng)不同路徑中的一個(gè)的示意圖;
[0078]圖2C是工具的傳統(tǒng)不同路徑中的一個(gè)的示意圖;
[0079]圖3是表示加工后的工件的傳統(tǒng)復(fù)合ADF的示意圖;
[0080]圖4是傳統(tǒng)上通過(guò)圖像順序光線(xiàn)投射來(lái)渲染復(fù)合ADF的示意圖;
[0081]圖5是四面體的傳統(tǒng)邊界表示的示意圖;
[0082]圖6A是根據(jù)本發(fā)明的一些實(shí)施方式的模擬加工的示意圖;
[0083]圖6B是根據(jù)本發(fā)明的一些實(shí)施方式的模擬加工的示意圖;
[0084]圖6C是根據(jù)本發(fā)明的一些實(shí)施方式的模擬加工的示意圖;
[0085]圖7是根據(jù)本發(fā)明的一些實(shí)施方式的模擬加工的方法的框圖;
[0086]圖8是根據(jù)本發(fā)明的一些實(shí)施方式的渲染布爾交集的方法的框圖;
[0087]圖9是根據(jù)本發(fā)明的一些實(shí)施方式的渲染布爾交集的方法的框圖;
[0088]圖10是物體的深度范圍的示意圖;
[0089]圖11是根據(jù)本發(fā)明的一個(gè)實(shí)施方式的渲染處理的流程圖;
[0090]圖12是根據(jù)本發(fā)明的一個(gè)實(shí)施方式的渲染處理的流程圖;
[0091]圖13是渲染處理的一些元件的示意圖;以及
[0092]圖14是根據(jù)本發(fā)明的一個(gè)實(shí)施方式的計(jì)算機(jī)系統(tǒng)的示意圖。
【具體實(shí)施方式】
[0093]本發(fā)明的實(shí)施方式提供了一種用于模擬數(shù)控(NC)加工(例如,車(chē)削、鏜孔、鉆孔、拉削、鋸切、成形、擴(kuò)孔、銑削、攻絲、磨削)的方法。
[0094]通常,可以固定物體,僅工具移動(dòng),或者可以固定工具,僅物體移動(dòng),或者如利用車(chē)床車(chē)削時(shí)(其中物體旋轉(zhuǎn),工具直線(xiàn)移動(dòng))一樣這二者均移動(dòng)。因此,術(shù)語(yǔ)“動(dòng)作”是指物體與工具之間的相對(duì)動(dòng)作。[0095]在此說(shuō)明書(shū)中,我們使用銑削作為示例加工操作。然而,應(yīng)該理解,本發(fā)明同樣可應(yīng)用于其它加工操作。
[0096]圖6A-圖6C示出本發(fā)明的一些實(shí)施方式背后的認(rèn)識(shí)。圖6A示出對(duì)物體的模型610的加工620進(jìn)行模擬的方法。具體地講,通過(guò)表示工具的動(dòng)作的一組掃掠體625來(lái)修改模型610,以模擬加工后的物體630。然而, 申請(qǐng)人:總體上認(rèn)識(shí)到,對(duì)于一些應(yīng)用,執(zhí)行加工620是不可取的。例如,當(dāng)掃掠體利用隱函數(shù)(例如,距離場(chǎng))隱含地表示,并且物體的模型利用(例如)邊界表示明確地表示時(shí),加工620可能失敗。
[0097] 申請(qǐng)人:還認(rèn)識(shí)到,如圖6B所示,可利用代理物體640來(lái)避免加工620。例如,代理物體可具有與掃掠體的表面相同的表面表示。另外地或另選地,代理物體可具有比物體的形狀更有利于加工模擬的形狀。因此,本發(fā)明的一些實(shí)施方式將一組掃掠體625應(yīng)用于650代理物體,以生成加工后的代理物體660。
[0098]接下來(lái),如圖6C所示,物體的模型610與加工后的代理物體660之間的布爾交集670生成加工后的物體680的圖像,其看起來(lái)類(lèi)似于包括正確遮擋的加工后的物體630。此夕卜,可在將物體的模型和加工后的代理物體渲染成圖像的過(guò)程中確定布爾交集,而無(wú)需修改物體的模型。
[0099]因此,代替對(duì)物體的模型執(zhí)行加工模擬,本發(fā)明的一些實(shí)施方式對(duì)代理物體執(zhí)行加工模擬。因此,對(duì)物體的模型進(jìn)行加工的問(wèn)題降低至確定加工后的代理物體與物體的模型之間的布爾交集。
[0100]代理物體將要加工的物體的模型與加工指令(S卩,一組掃掠體)分離。這種分離使得能夠?qū)哂胁煌螤詈捅砻姹硎镜娜我忸?lèi)型的物體執(zhí)行加工模擬。實(shí)際上,代理物體使得能夠在不預(yù)先提供物體的模型的情況下進(jìn)行加工模擬。此外,代理物體使得能夠執(zhí)行加工模擬以生成加工后的代理物體,并針對(duì)不同的要加工的物體重復(fù)使用加工后的代理物體。
[0101]因此,代理物體的使用降低了模擬的成本,同時(shí)擴(kuò)展了加工模擬的適用性和靈活性。
[0102]物體的模型的表面和一組掃掠體的表面可有各種表不。例如,表面可具有明確表示(例如,邊界表示)或隱含表示(例如,使用一組隱函數(shù))。所述一組隱函數(shù)可包括從由以下各項(xiàng)構(gòu)成的組中選擇出的隱函數(shù):距離場(chǎng)、采樣距離場(chǎng)、自適應(yīng)采樣距離場(chǎng)、復(fù)合自適應(yīng)采樣距離場(chǎng)以及它們的組合。
[0103]在本發(fā)明的一些實(shí)施方式中,物體的模型的表面的表不和一組掃掠體的表面的表不是不同類(lèi)型的表不。在另選實(shí)施方式中,物體的模型的表面的表不和一組掃掠體的表面的表示是相同類(lèi)型的表示。
[0104]另外,在一些實(shí)施方式中,代理物體被確定為使得代理物體的形狀至少外接物體的模型的形狀。代理物體的形狀為立體形狀,例如矩形、立方形和球形。其它形狀的代理物體也是可以的。
[0105]例如,在一個(gè)實(shí)施方式中,代理物體表不具有與掃掠體的表面表不相同的表面表示的立體物體,其中,代理物體的形狀至少外接BP物體的形狀。在此實(shí)施方式的一個(gè)變型中,代理物體具有矩形形狀。
[0106]圖7示出根據(jù)本發(fā)明的一些實(shí)施方式的用于對(duì)物體進(jìn)行模擬加工的方法700的框圖。在這些實(shí)施方式中,加工包括利用工具的動(dòng)作加工物體。物體由邊界表示(BP)物體701表示,其中,BP物體包括物體的表面的邊界表示714。動(dòng)作由一組掃掠體704表示,其中,一組掃掠體包括限定所述一組掃掠體的表面的第一組隱函數(shù)711。然而,提供此實(shí)施方式僅是為了示意性目的,并非旨在限制本發(fā)明的范圍。
[0107]在BP物體701的加工模擬的開(kāi)始,確定(730)代理物體702,其中,第二組隱函數(shù)712限定代理物體的表面。接下來(lái),利用一組掃掠體704對(duì)代理物體702的加工進(jìn)行模擬(740),以生成加工后的代理(MP)物體703,該MP物體703具有限定該MP物體的表面的第三組隱函數(shù)713。將MP物體703與BP物體701之間的布爾交集705渲染(750)為圖像710。通常,從觀察方向(例如,由光線(xiàn)706示出的觀察方向)執(zhí)行渲染750。圖像710表示從觀察方向706可以看到的加工后的BP物體。圖像710可存儲(chǔ)在存儲(chǔ)器720中以進(jìn)行存儲(chǔ)或進(jìn)一步處理。
[0108]方法700和/或本發(fā)明的其它實(shí)施方式由處理器799執(zhí)行。“處理器”或“中央處理單元(CPU)”是指讀取并執(zhí)行軟件指令的計(jì)算機(jī)或計(jì)算機(jī)的組件。本領(lǐng)域技術(shù)人員將理解,本發(fā)明的實(shí)施方式可具體實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,實(shí)施方式可采取全硬件實(shí)施方式、全軟件實(shí)施方式(包括固件、常駐軟件、微代碼等)或組合軟件和硬件方面(在本文中可全部統(tǒng)稱(chēng)為“電路”、“模塊”或“系統(tǒng)”)的實(shí)施方式的形式。另外,本發(fā)明可采取具體實(shí)現(xiàn)在一個(gè)或更多個(gè)計(jì)算機(jī)可讀(即,計(jì)算機(jī)可用)介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,所述計(jì)算機(jī)可讀介質(zhì)上具體實(shí)現(xiàn)有計(jì)算機(jī)可用程序代碼。
[0109]“計(jì)算機(jī)”是指能夠接受結(jié)構(gòu)化輸入,根據(jù)規(guī)定的規(guī)則處理結(jié)構(gòu)化輸入并生成處理結(jié)果作為輸出的任何設(shè)備。計(jì)算機(jī)的示例包括計(jì)算機(jī);通用計(jì)算機(jī);超級(jí)計(jì)算機(jī);大型機(jī);超級(jí)迷你計(jì)算機(jī);迷你計(jì)算機(jī);工作站;微型計(jì)算機(jī);服務(wù)器;交互電視;計(jì)算機(jī)和交互電視的混合組合;仿真計(jì)算機(jī)和/或軟件的專(zhuān)用硬件。計(jì)算機(jī)可具有單個(gè)處理器或多個(gè)處理器,所述處理器可并行和/或非平行操作。計(jì)算機(jī)還指經(jīng)由用于在計(jì)算機(jī)之間發(fā)送或接收信息的網(wǎng)絡(luò)連接在一起的兩個(gè)或更多個(gè)計(jì)算機(jī)。這種計(jì)算機(jī)的示例包括經(jīng)由通過(guò)網(wǎng)絡(luò)鏈接的計(jì)算機(jī)來(lái)處理信息的分布式計(jì)算機(jī)系統(tǒng)。
[0110]“存儲(chǔ)器”或“計(jì)算機(jī)可讀介質(zhì)”是指用于存儲(chǔ)計(jì)算機(jī)可訪問(wèn)的數(shù)據(jù)的任何存儲(chǔ)器。示例包括磁性硬盤(pán);光盤(pán),類(lèi)似CD-ROM或DVD ;磁帶;存儲(chǔ)器芯片;用于承載計(jì)算機(jī)可讀電子數(shù)據(jù)的載波,例如發(fā)送和接收電子郵件或訪問(wèn)網(wǎng)絡(luò)時(shí)使用的那些載波,以及計(jì)算機(jī)存儲(chǔ)器,例如,隨機(jī)存取存儲(chǔ)器(RAM)。具體實(shí)現(xiàn)在計(jì)算機(jī)可讀介質(zhì)上的程序代碼可利用任何適當(dāng)?shù)慕橘|(zhì)來(lái)發(fā)送,所述介質(zhì)包括(但不限于)無(wú)線(xiàn)、有線(xiàn)線(xiàn)路、光纖線(xiàn)纜、RF等。
[0111]用于執(zhí)行本發(fā)明的操作的計(jì)算機(jī)程序代碼可以按照面向?qū)ο蟮木幊陶Z(yǔ)言(例如,Java、Smalltalk、C++等)來(lái)編寫(xiě)。然而,用于執(zhí)行本發(fā)明的操作的計(jì)算機(jī)程序代碼還可以按照傳統(tǒng)的過(guò)程化編程語(yǔ)言(例如,“C”編程語(yǔ)言或類(lèi)似編程語(yǔ)言)來(lái)編寫(xiě)。程序代碼可全部在用戶(hù)的計(jì)算機(jī)上執(zhí)行,作為獨(dú)立軟件包部分地在用戶(hù)的計(jì)算機(jī)上執(zhí)行,部分地在用戶(hù)的計(jì)算機(jī)上執(zhí)行并部分地在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行,或者全部在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在后一種情形下,遠(yuǎn)程計(jì)算機(jī)可通過(guò)局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)連接到用戶(hù)的計(jì)算機(jī),或者可連接到外部計(jì)算機(jī)(例如,利用互聯(lián)網(wǎng)服務(wù)提供商通過(guò)互聯(lián)網(wǎng)連接)。
[0112]代理物體702可以是(例如)尺寸比BP物體601的尺寸大的矩形立體的ADF,代理物體的形狀至少外接BP物體的形狀。通常,布爾交集是指當(dāng)且僅當(dāng)點(diǎn)在一個(gè)物體的邊界上并且在另一物體的內(nèi)部時(shí),該點(diǎn)僅在兩個(gè)物體的布爾交集的邊界上。兩個(gè)物體的布爾交集的內(nèi)部是兩個(gè)物體的內(nèi)側(cè)區(qū)域共有的空間區(qū)域。由于代理物體比BP物體大,所以在兩個(gè)物體內(nèi)側(cè)的空間區(qū)域等于在單獨(dú)的b-rep物體內(nèi)側(cè)的空間區(qū)域。
[0113]BP物體與MP物體之間的布爾交集705的渲染750可通過(guò)多個(gè)方法來(lái)執(zhí)行。具體方法的選擇可取決于BP物體和MP物體的表面的表示類(lèi)型。
[0114]圖8示出根據(jù)本發(fā)明的一些實(shí)施方式的用于渲染750的方法的框圖。BP物體的表面包括在世界坐標(biāo)系805中的BP物體片段810。類(lèi)似地,MP物體的表面包括也在世界坐標(biāo)系805中的MP物體片段820。世界坐標(biāo)系中的各個(gè)BP物體片段和MP物體片段對(duì)應(yīng)于圖像坐標(biāo)系815中的圖像710的像素。
[0115]確定(830)在MP物體內(nèi)部的一組BP物體片段835。如果BP物體片段在MP物體的表面上或者在MP物體內(nèi)側(cè),則該BP物體片段在MP物體內(nèi)部。否則,BP物體片段在MP物體外部。
[0116]由于MP物體的表面被隱含地表示,所以可確定從BP物體片段到MP物體的表面的距離870。在世界坐標(biāo)系805中確定所述距離。如果距離870表明BP物體片段在MP物體內(nèi)部,則本發(fā)明的一個(gè)實(shí)施方式將該BP物體片段添加到一組BP物體片段835中。否則,BP物體片段在MP物體外部。通常,距離870的符號(hào)表明BP物體片段在MP物體內(nèi)部還是外部。根據(jù)隱函數(shù)的定義,該符號(hào)可為正或負(fù)。如果距離870為零,則BP物體片段在MP物體的表面上,即,在MP物體內(nèi)部。
[0117]類(lèi)似地,確定(840)在BP物體內(nèi)部的一組MP物體片段845。如果MP物體片段在BP物體的表面上或者在BP物體內(nèi)側(cè),則該MP物體片段在BP物體內(nèi)部。
[0118]由于BP物體的表面被明確地表不,所以本發(fā)明的一個(gè)實(shí)施方式在圖像坐標(biāo)系815中執(zhí)行確定840。例如,在圖像坐標(biāo)系中確定MP物體片段的深度880,并且如果深度880在BP物體內(nèi)部的至少一個(gè)深度范圍885內(nèi),則將該MP物體片段添加到一組MP物體片段845。
[0119]圖10示出圖像坐標(biāo)系中的BP物體1001的示例。根據(jù)觀察方向,BP物體1001具有不同數(shù)量的內(nèi)部深度范圍。例如,對(duì)于觀察方向1002,在BP物體內(nèi)部有兩個(gè)深度范圍,即,深度范圍1003和深度范圍1004。對(duì)于觀察方向1010,僅有一個(gè)深度范圍1011。
[0120]再次參照?qǐng)D8,將一組BP物體片段835和一組MP物體片段845轉(zhuǎn)換(850)為圖像坐標(biāo)系中的形成圖像710的至少一部分的一組像素860。
[0121]在一些實(shí)施方式中,在MP物體外部的BP物體片段可對(duì)應(yīng)于應(yīng)該針對(duì)布爾交集的渲染進(jìn)行測(cè)試的MP物體片段。因此,如果距離表明BP物體片段在MP物體外部,則本發(fā)明的一個(gè)實(shí)施方式將該BP物體片段添加到一組加工后的BP物體片段890中。在此實(shí)施方式中,對(duì)于在一組MP物體片段中的選擇,僅測(cè)試與一組加工后的BP物體片段中的BP物體片段對(duì)應(yīng)的MP物體片段。可在圖像坐標(biāo)系中確定MP物體片段與一組加工后的BP物體片段中的BP物體片段之間的對(duì)應(yīng)關(guān)系。例如,一個(gè)實(shí)施方式針對(duì)與一組加工后的BP物體片段中的BP物體片段對(duì)應(yīng)的像素在輔助幀緩沖器中設(shè)置像素標(biāo)志,使得該像素標(biāo)志確定MP物體片段與BP物體片段之間的對(duì)應(yīng)關(guān)系。
[0122]在一些實(shí)施方式中,通過(guò)針對(duì)與一組加工后的BP物體片段中的BP物體片段對(duì)應(yīng)的BP物體的至少一個(gè)面設(shè)置面標(biāo)志以生成至少一個(gè)加工后的面,來(lái)進(jìn)一步加速渲染750。在此實(shí)施方式中,僅針對(duì)加工后的面確定BP物體內(nèi)部的深度范圍。[0123]本發(fā)明的一些實(shí)施方式使用雙標(biāo)記,即,設(shè)置像素標(biāo)志和面標(biāo)志這二者。此雙標(biāo)記通過(guò)允許跳過(guò)源自加工后的代理物體的圖像中肯定沒(méi)有片段的面和像素而極大加速了渲染。
[0124]圖9示出根據(jù)本發(fā)明的一個(gè)實(shí)施方式的渲染處理900的流程圖。在步驟910,在世界坐標(biāo)系中確定BP物體的表面上的BP物體片段。在世界坐標(biāo)系中,在步驟920確定在MP物體內(nèi)部的一組BP物體片段,在步驟930確定在MP物體外部的一組加工后的BP物體片段。在步驟940,在圖像坐標(biāo)系中確定BP物體的一組加工后的面,使得各個(gè)加工后的面對(duì)應(yīng)于一組加工后的BP物體片段中的至少一個(gè)BP物體片段。并且在步驟950,在圖像坐標(biāo)系中確定BP物體內(nèi)部的一組深度范圍,其中,針對(duì)至少一個(gè)加工后的面確定至少一個(gè)深度范圍。
[0125]另外,在步驟960,在世界坐標(biāo)系中確定MP物體的表面上的MP物體片段。在步驟970,在圖像坐標(biāo)系中確定與一組加工后的BP物體片段中的BP物體片段對(duì)應(yīng)的MP物體片段。接下來(lái),在步驟980,如果在圖像坐標(biāo)系中,對(duì)應(yīng)MP物體片段的深度在步驟950中確定的一組深度范圍當(dāng)中的至少一個(gè)深度范圍內(nèi),則通過(guò)將對(duì)應(yīng)MP物體片段添加到一組MP物體片段中來(lái)確定一組MP物體片段。接下來(lái),在步驟990,將一組BP物體片段和一組MP物體片段轉(zhuǎn)換為圖像坐標(biāo)系中的形成圖像的至少一部分的一組像素。
[0126]實(shí)現(xiàn)方式的示例
[0127]圖11-圖12示出根據(jù)本發(fā)明的一個(gè)實(shí)施方式的渲染為圖像的處理的特定(但非旨在限制的)示例的流程圖。圖像顯示在具有屏幕坐標(biāo)系的顯示裝置的屏幕上。渲染以?xún)蓚€(gè)階段進(jìn)行。在第一階段,渲染BP物體,使得具有在MP物體外部的世界空間位置的BP物體的任何BP片段不被添加到圖像的幀緩沖器。在第二階段,僅針對(duì)與在MP物體外部(S卩,來(lái)自一組加工后的BP片段)的BP物體片段對(duì)應(yīng)的那些像素執(zhí)行MP物體的渲染。
[0128]圖11示出渲染的第一階段的流程圖。在第一階段過(guò)程中,方法在BP物體的所有面上迭代(1101)。將各個(gè)面從世界坐標(biāo)系投影(1102)到屏幕坐標(biāo)系,然后光柵化(1103)以確定與圖像中的像素的位置對(duì)應(yīng)的片段。在光柵化(1103)過(guò)程中生成的各個(gè)片段經(jīng)受z緩沖器測(cè)試(1104)以確定片段的可見(jiàn)性。接下來(lái),將片段在屏幕坐標(biāo)系中的坐標(biāo)變換回(1105) BP片段在世界坐標(biāo)系中的坐標(biāo)。確定MP物體的距離場(chǎng)的值并針對(duì)BP片段在世界坐標(biāo)系中的坐標(biāo)進(jìn)行測(cè)試(1106)。如果距離場(chǎng)的符號(hào)表明BP片段在MP物體內(nèi)部,則該片段在BP物體與MP物體的布爾交集的邊界上。因此,將BP物體的該BP片段的顏色和z值分別寫(xiě)入顏色和z緩沖器(1107)。如果MP物體的距離場(chǎng)的符號(hào)表明BP片段在MP物體外部,則不對(duì)該BP片段的顏色和z值進(jìn)行計(jì)算或添加到顏色和z緩沖器。
[0129]然而,當(dāng)BP片段在MP物體外部時(shí),應(yīng)該針對(duì)此像素顯示的表面可能對(duì)應(yīng)于MP物體。因此,針對(duì)與該外部BP片段對(duì)應(yīng)的像素設(shè)置(1108)兩個(gè)標(biāo)志。具體地講,面標(biāo)志與包括該外部BP片段的BP物體的各個(gè)面關(guān)聯(lián)。另外,針對(duì)與該外部BP片段對(duì)應(yīng)的各個(gè)像素在輔助幀緩沖器中設(shè)置像素標(biāo)志。像素標(biāo)志表明對(duì)于此像素,ΜΡ物體可在ΒΡ物體與ΜΡ物體的布爾交集的邊界上。在渲染的第二階段過(guò)程中使用這兩個(gè)標(biāo)志。面標(biāo)志和像素標(biāo)志占據(jù)兩個(gè)互補(bǔ)的渲染空間:面標(biāo)志是物體標(biāo)記,像素標(biāo)志是圖像標(biāo)記。此雙空間標(biāo)記通過(guò)允許跳過(guò)源自ΜΡ物體的圖像中肯定沒(méi)有片段的面和像素而極大加速了渲染。
[0130]在渲染的第一階段過(guò)程中,實(shí)施方式還將外部ΒΡ片段的ζ值存儲(chǔ)(至少臨時(shí)存儲(chǔ))在輔助ζ緩沖器中,以獲得正確的遮擋。例如,ΒΡ物體的不同面的光柵化(1103)可生成與圖像的相同像素對(duì)應(yīng)的BP片段。這些BP片段中的一些(但沒(méi)有必要是全部)可能在MP物體的外部。然而,早先光柵化的面可包括給定像素的外部BP片段。這導(dǎo)致針對(duì)該像素設(shè)置像素標(biāo)志。稍后光柵化的面的BP片段可能覆蓋早先光柵化的面的BP片段,因此必須清除針對(duì)該像素的像素標(biāo)志。
[0131]例如,參照?qǐng)D13,面1310比面1311早渲染,當(dāng)從箭頭1312所指示的方向觀察時(shí),生成BP片段1313。然而,BP片段1313在MP物體1314的外側(cè),MP物體1314的外側(cè)由點(diǎn)畫(huà)圖案指示。因此,BP片段1313在BP物體與MP物體的布爾交集外側(cè),對(duì)圖像沒(méi)有貢獻(xiàn)。
[0132]BP片段1315從面1311生成,并且在MP物體1314內(nèi)部,并且還具有比BP片段1313低的z,因此該片段可見(jiàn)并被添加到幀緩沖器。
[0133]輔助ζ緩沖器用于將面1311的情況與面1316的情況相區(qū)分。面1316的光柵化生成片段1317,該片段1317就像BP片段1313 —樣也在MP物體內(nèi)部,因此潛在地可見(jiàn)。然而,在片段1315的情況下,MP物體的片段不可能可見(jiàn),因?yàn)镸P物體被面1311遮擋。然而,MP物體仍可能對(duì)遮擋面1316的像素有貢獻(xiàn)。
[0134]參照?qǐng)D11和圖13,針對(duì)存儲(chǔ)在輔助ζ緩沖器1109中的值對(duì)外部BP片段1313的ζ值進(jìn)行ζ測(cè)試。如果BP片段的ζ值小于所存儲(chǔ)的值,則BP片段1313的ζ值取代(1110)所存儲(chǔ)的ζ值。針對(duì)輔助ζ緩沖器中的值對(duì)下一內(nèi)部ΒΡ片段1315進(jìn)行ζ測(cè)試(1111)。如果片段1315的ζ值小于所存儲(chǔ)的(例如,ΒΡ片段1313的)ζ值,則將片段1315的ζ值存儲(chǔ)在標(biāo)準(zhǔn)ζ緩沖器和輔助ζ緩沖器這二者中,確定ΒΡ片段1315的顏色并將其存儲(chǔ)在顏色緩沖器中,清除(1312)像素標(biāo)志。
[0135]另選地,針對(duì)輔助ζ緩沖器(在此示例中,其具有片段1313的ζ值)中的值對(duì)諸如ΒΡ片段1317的下一內(nèi)部ΒΡ片段進(jìn)行ζ測(cè)試(1111)。由于片段1317的ζ值大于輔助ζ緩沖器中的ζ值,所以將片段1317的ζ值僅存儲(chǔ)在標(biāo)準(zhǔn)ζ緩沖器中,并且確定片段1317的顏色并將其存儲(chǔ)在顏色緩沖器中。不將片段1317的ζ值寫(xiě)入輔助ζ緩沖器,不清除像素標(biāo)志。在一個(gè)實(shí)施方式中,在渲染的第一階段完成之后,丟棄輔助ζ緩沖器的值。
[0136]在ΒΡ物體和ΜΡ物體的渲染的第二階段過(guò)程中,一些實(shí)施方式確定在ΒΡ物體內(nèi)部的ζ值的范圍(以下稱(chēng)作ΒΡ物體內(nèi)部的深度范圍)。針對(duì)設(shè)置了像素標(biāo)志的像素執(zhí)行ΜΡ物體的渲染。如果像素的ΜΡ物體的ΜΡ片段的ζ值在ΒΡ物體內(nèi)部的至少一個(gè)深度范圍內(nèi),則ΜΡ片段在ΒΡ物體與ΜΡ物體的布爾交集的邊界上,確定ΜΡ片段的顏色并將其存儲(chǔ)在顏色緩沖器中。
[0137]如圖10所示,根據(jù)ΒΡ物體1001的形狀和觀察方向,ΒΡ物體1001可具有一個(gè)或多個(gè)深度范圍。例如,當(dāng)從觀察方向1002觀察時(shí),ΒΡ物體內(nèi)部有兩個(gè)深度范圍,S卩,深度范圍1003和深度范圍1004 (本文中統(tǒng)稱(chēng)為一組深度范圍)。對(duì)于具有面標(biāo)志的各個(gè)面并且對(duì)于該面上的具有像素標(biāo)志的各個(gè)像素,確定深度范圍以形成BP物體內(nèi)部的一組深度范圍。例如,對(duì)于深度范圍1003和1004,一個(gè)實(shí)施方式存儲(chǔ)四個(gè)ζ值:進(jìn)入范圍1003的第一 ζ值、離開(kāi)范圍1003的第二值、進(jìn)入范圍1004的第三值、離開(kāi)范圍1004的第四值。
[0138]對(duì)于各個(gè)像素必須存儲(chǔ)的ζ值的數(shù)量等于深度范圍的數(shù)量的兩倍。然而,ΒΡ物體可包括多個(gè)細(xì)段(類(lèi)似梳齒),使得對(duì)于一些觀察方向,深度范圍的數(shù)量非常大。在這種情況下,存儲(chǔ)所有ζ值所需的存儲(chǔ)器會(huì)極大,并且無(wú)法預(yù)測(cè)。
[0139]因此,本發(fā)明的一個(gè)實(shí)施方式使用多程方法,該方法按照從前至后的順序一次處理BP物體的一個(gè)深度范圍。除了標(biāo)準(zhǔn)ζ緩沖器之外,該方法需要四個(gè)附加ζ緩沖器。一對(duì)額外的ζ緩沖器存儲(chǔ)針對(duì)當(dāng)前深度范圍的進(jìn)入和離開(kāi)ζ值,第二對(duì)額外的ζ緩沖器存儲(chǔ)針對(duì)先前深度范圍的進(jìn)入和離開(kāi)ζ值。通過(guò)要求當(dāng)前的進(jìn)入ζ值大于先前的離開(kāi)ζ值,該方法按照從前至后的順序遍歷深度范圍。
[0140]另外,當(dāng)前的離開(kāi)ζ值必須大于當(dāng)前的進(jìn)入ζ值。然而,這是在下一進(jìn)入ζ值之前總是存在離開(kāi)ζ值的良好形成的邊界表示的基本特征,以避免不可接受的拓?fù)涠x性。以下,四個(gè)附加Z緩沖器稱(chēng)作先前ζ前緩沖器、先前Z后緩沖器、當(dāng)前ζ前緩沖器和當(dāng)前Z后緩沖器。
[0141]參照?qǐng)D12,在初始化步驟過(guò)程中,將先前ζ前緩沖器和當(dāng)前ζ前緩沖器中的每一像素的值設(shè)置(1201)為0.0,將先前ζ后緩沖器和當(dāng)前ζ后緩沖器中的每一像素的值設(shè)置(1202)為1.0。接下來(lái),該方法在BP物體的面上迭代(1203),將設(shè)置(1204)了面標(biāo)志的BP物體的各個(gè)面投影到屏幕坐標(biāo)系中(1205)并光柵化(1206)。
[0142]對(duì)于未設(shè)置像素標(biāo)志(1207)的所有像素,跳過(guò)面的光柵化。對(duì)于設(shè)置了像素標(biāo)志的BP物體的面的各個(gè)BP片段,執(zhí)行ζ測(cè)試(1208)以確定BP片段是否被幀緩沖器中的像素遮擋。如果BP片段具有比標(biāo)準(zhǔn)ζ緩沖器中的值更大的ζ值,則BP片段被遮擋,并且不需要附加處理。如果與面關(guān)聯(lián)的所有BP片段被遮擋,則清除面標(biāo)志,并且不再處理所述面。
[0143]接下來(lái),根據(jù)沿著面的兩條邊的一對(duì)向量的叉積確定面的法向量。利用觀察矩陣變換法向量,計(jì)算觀察方向與面的法向量之間的向量點(diǎn)積以確定面的取向(1209),S卩,面的取向是朝前還是朝后。如果點(diǎn)積為正,則所述面的取向背離觀察方向,是向后的面,否則,所述面向前。將向前的面的各個(gè)BP片段的ζ值與先前ζ前緩沖器和當(dāng)前ζ前緩沖器這二者中的值進(jìn)行比較(1210)。如果BP片段的ζ值大于先前ζ前緩沖器中的值并小于當(dāng)前ζ前緩沖器中的值,則將ζ值存儲(chǔ)(1211)到當(dāng)前ζ前緩沖器。如果向前的面的所有片段的ζ值小于或等于先前ζ前緩沖器中的值,則清除面標(biāo)志,并且不再處理所述面。
[0144]將各個(gè)向后的片段的ζ值與先前ζ后緩沖器和當(dāng)前ζ后緩沖器這二者中的ζ值進(jìn)行比較。如果片段的Z值大于先前ζ后緩沖器中的值并小于當(dāng)前Z后緩沖器中的值,則將BP片段的ζ值存儲(chǔ)(1213)到當(dāng)前ζ后緩沖器。如果向后的面的所有片段的ζ值小于或等于先前ζ后緩沖器中的值,則清除該面的面標(biāo)志,并且不再處理所述面。
[0145]在針對(duì)設(shè)置了像素標(biāo)志的所有像素確定一組深度范圍之后,針對(duì)得到MP物體的MP片段的那些像素執(zhí)行MP物體的渲染。渲染在輔助幀緩沖器中的像素上迭代(1214),對(duì)于設(shè)置了像素標(biāo)志(1215)的各個(gè)像素,計(jì)算光線(xiàn)與MP物體的交點(diǎn)(1216),得到MP物體的一組MP片段。針對(duì)內(nèi)側(cè)間隔對(duì)MP物體的各個(gè)MP片段進(jìn)行ζ測(cè)試(1217)。如果MP片段的Z值在深度范圍內(nèi),即,片段的Z值大于當(dāng)前ζ前緩沖器中的Z值且小于當(dāng)前Z后緩沖器中的Z值,則MP片段在BP物體與MP物體的布爾交集的邊界上。因此,計(jì)算MP片段的顏色,將MP片段的顏色和ζ值分別存儲(chǔ)(1218)在顏色緩沖器和標(biāo)準(zhǔn)ζ緩沖器中,并且清除(1219)像素標(biāo)志。如果輔助緩沖器中的所有像素標(biāo)志均被清除,則圖像的渲染完成。
[0146]然而,如果在渲染了 MP物體之后輔助緩沖器中仍存在設(shè)置的任何像素標(biāo)志,則分別將當(dāng)前Z前緩沖器和當(dāng)前ζ后緩沖器中的Z值復(fù)制到先前ζ前緩沖器和先前Z后緩沖器,將當(dāng)前Z前緩沖器和當(dāng)前ζ后緩沖器設(shè)置為1.0,以用于確定BP物體內(nèi)部的下一深度范圍。這種在MP物體的渲染之后確定連續(xù)的深度范圍的處理重復(fù),直至不存在設(shè)置的像素標(biāo)志(1220)。
[0147]圖14示出根據(jù)本發(fā)明的一些實(shí)施方式的計(jì)算機(jī)系統(tǒng)的示意圖。將一組加工指令1401從⑶或DVD作為文件通過(guò)網(wǎng)絡(luò)提供給NC加工控制器1402,或者通過(guò)本領(lǐng)域已知的一些其它手段提供給NC加工控制器1402??刂破?402包括處理器1403、存儲(chǔ)器1404以及用于顯示機(jī)器的操作的顯示器1405。加工模擬器1406在處理器上運(yùn)行,加工模擬器1406接收銑削指令1001,并采用本發(fā)明的方法1450來(lái)在顯示器1405上生成模擬的工件的圖像1407。
[0148]這些計(jì)算機(jī)可按照任何合適的形式通過(guò)一個(gè)或更多個(gè)網(wǎng)絡(luò)互連,包括局域網(wǎng)或廣域網(wǎng)(例如,企業(yè)網(wǎng)或互聯(lián)網(wǎng))。這些網(wǎng)絡(luò)可基于任何合適的技術(shù),并可根據(jù)任何合適的協(xié)議來(lái)操作,并且可包括無(wú)線(xiàn)網(wǎng)絡(luò)、有線(xiàn)網(wǎng)絡(luò)或光纖網(wǎng)絡(luò)。
[0149]另外,本文中概述的各種方法或處理可編碼為軟件,該軟件可在采用各種操作系統(tǒng)或平臺(tái)中的任一個(gè)的一個(gè)或更多個(gè)處理器上執(zhí)行。另外,這種軟件可利用多種合適的編程語(yǔ)言和/或編程或腳本工具中的任一種來(lái)編寫(xiě),并且還可被編譯為在框架或虛擬機(jī)上執(zhí)行的可執(zhí)行機(jī)器語(yǔ)言代碼或中間代碼。
[0150]在這一方面,本發(fā)明可具體實(shí)現(xiàn)為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)或多個(gè)計(jì)算機(jī)可讀介質(zhì),例如計(jì)算機(jī)存儲(chǔ)器、緊湊盤(pán)(⑶)、光盤(pán)、數(shù)字視頻盤(pán)(DVD)、磁帶和閃存。另選地或另外地,本發(fā)明可具體實(shí)現(xiàn)為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的計(jì)算機(jī)可讀介質(zhì),例如傳播信號(hào)。
[0151]本文中在一般意義上使用術(shù)語(yǔ)“程序”或“軟件”來(lái)指代任何類(lèi)型的計(jì)算機(jī)代碼或計(jì)算機(jī)可執(zhí)行指令集,其可被采用以將計(jì)算機(jī)或其它處理器編程為實(shí)現(xiàn)如上所述的本發(fā)明的各個(gè)方面。
[0152]計(jì)算機(jī)可執(zhí)行指令可為許多形式,例如由一個(gè)或更多個(gè)計(jì)算機(jī)或其它裝置執(zhí)行的程序模塊。通常,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類(lèi)型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)。通常,在各種實(shí)施方式中,程序模塊的功能可根據(jù)需要組合或分布。
[0153]另外,本發(fā)明的實(shí)施方式可具體實(shí)現(xiàn)為方法,所述方法的示例已提供。作為方法的一部分執(zhí)行的行為可按照任何合適的方式排序。因此,實(shí)施方式可被構(gòu)造為按照與圖示順序不同的順序執(zhí)行行為,這可包括即使一些行為在示意性實(shí)施方式中作為順序行為示出,也同時(shí)執(zhí)行所述行為。
[0154]參照方法、設(shè)備(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述了本發(fā)明的實(shí)施方式。將理解,流程圖和/或框圖中的各個(gè)方框以及流程圖和/或框圖中的方框的組合可通過(guò)計(jì)算機(jī)程序指令來(lái)實(shí)現(xiàn)。可將這些計(jì)算機(jī)程序指令提供給通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理設(shè)備的處理器以生成機(jī)器,使得經(jīng)由計(jì)算機(jī)或其它可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令創(chuàng)建用于實(shí)現(xiàn)流程圖和/或框圖的方框中指定的功能/行為的裝置。
[0155]還可將計(jì)算機(jī)程序指令加載到計(jì)算機(jī)或其它可編程數(shù)據(jù)處理設(shè)備上以使得在計(jì)算機(jī)或其它可編程設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,使得在計(jì)算機(jī)或其它可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)流程圖和/或框圖的方框中指定的功能/行為的步驟。
[0156]本發(fā)明的效果
[0157]本發(fā)明的實(shí)施方式描述了一種對(duì)物體進(jìn)行模擬加工的系統(tǒng)、計(jì)算機(jī)產(chǎn)品和方法。實(shí)施方式實(shí)現(xiàn)了對(duì)物體的模型的加工模擬,而無(wú)需修改模型本身。另外,通過(guò)引入要加工的代理物體來(lái)代替物體的模型,實(shí)施方式使得能夠利用具有一種類(lèi)型的表面表示的一組掃掠體來(lái)對(duì)具有另一類(lèi)型的表面表示的物體進(jìn)行加工模擬。
[0158][工業(yè)實(shí)用性]
[0159]本發(fā)明的系統(tǒng)和方法以及計(jì)算機(jī)程序產(chǎn)品可應(yīng)用于許多類(lèi)型的領(lǐng)域。
【權(quán)利要求】
1.一種通過(guò)工具的動(dòng)作模擬對(duì)物體的加工的方法,其中,所述物體由邊界表示(BP)物體表示,其中,所述BP物體包括所述物體的表面的邊界表示,其中,所述動(dòng)作由一組掃掠體表示,其中,所述一組掃掠體包括限定所述一組掃掠體的表面的第一組隱函數(shù),所述方法包括以下步驟:確定代理物體,該代理物體具有限定該代理物體的表面的第二組隱函數(shù);利用所述一組掃掠體來(lái)模擬對(duì)所述代理物體的加工,以生成加工后的代理(MP)物體,該MP物體具有限定該MP物體的表面的第三組隱函數(shù);以及渲染所述MP物體與所述BP物體之間的布爾交集的圖像,其中,該方法的上述步驟由處理器執(zhí)行。
2.根據(jù)權(quán)利要求1所述的方法,其中,隱函數(shù)從由以下各項(xiàng)構(gòu)成的組中選擇出:距離場(chǎng)、采樣距離場(chǎng)、自適應(yīng)采樣距離場(chǎng)、復(fù)合自適應(yīng)采樣距離場(chǎng)以及它們的組合。
3.根據(jù)權(quán)利要求1所述的方法,其中,從觀察方向執(zhí)行所述渲染。
4.根據(jù)權(quán)利要求1所述的方法,其中,所述BP物體的表面包括在世界坐標(biāo)系中的BP物體片段,其中,所述MP物體的表面包括在所述世界坐標(biāo)系中的MP物體片段,并且其中,所述渲染還包括以下步驟:確定在所述MP物體內(nèi)部的一組BP物體片段;確定在所述BP物體內(nèi)部的一組MP物體片段;以及將所述一組BP物體片段和所述一組MP物體片段轉(zhuǎn)換為圖像坐標(biāo)系中的形成所述圖像的至少一部分的一組像素。
5.根據(jù)權(quán)利要求4所述的方法,其中,確定所述一組BP物體片段的步驟包括以下步驟:確定從BP物體片段到所述MP物體的表面的距離,其中,在所述世界坐標(biāo)系中確定所述距離;以及如果所述距離表明所述BP物體片段在所述MP物體內(nèi)部,則將所述BP物體片段添加到所述一組BP物體片段中。
6.根據(jù)權(quán)利要求4所述的方法,其中,確定所述一組MP物體片段的步驟包括以下步驟:在所述圖像坐標(biāo)系中確定MP物體片段的深度;以及如果所述深度在所述BP物體內(nèi)部的至少一個(gè)深度范圍內(nèi),則將所述MP物體片段添加到所述一組MP物體片段中,其中,在所述圖像坐標(biāo)系中確定所述深度范圍。
7.根據(jù)權(quán)利要求5所述的方法,該方法還包括以下步驟:如果所述距離表明所述BP物體片段在所述MP物體外部,則將所述BP物體片段添加到一組加工后的BP物體片段中。
8.根據(jù)權(quán)利要求7所述的方法,其中,確定所述一組MP物體片段的步驟包括以下步驟:確定與所述一組加工后的BP物體片段中的BP物體片段對(duì)應(yīng)的MP物體片段;在所述圖像坐標(biāo)系中確定各個(gè)對(duì)應(yīng)MP物體片段的深度;以及如果所述深度在所述BP物體內(nèi)部的至少一個(gè)深度范圍內(nèi),則將對(duì)應(yīng)MP物體片段添加到所述一組MP物體片段中,其中,在所述圖像坐標(biāo)系中確定所述深度范圍。
9.根據(jù)權(quán)利要求8所述的方法,該方法還包括以下步驟:在所述圖像坐標(biāo)系中確定所述MP物體片段與所述一組加工后的BP物體片段中的BP物體片段之間的對(duì)應(yīng)關(guān)系。
10.根據(jù)權(quán)利要求9所述的方法,該方法還包括以下步驟:針對(duì)與所述一組加工后的BP物體片段中的BP物體片段對(duì)應(yīng)的像素設(shè)置像素標(biāo)志,使得所述像素標(biāo)志確定所述MP物體片段與所述BP物體片段之間的對(duì)應(yīng)關(guān)系。
11.根據(jù)權(quán)利要求9所述的方法,該方法還包括以下步驟:針對(duì)與所述一組加工后的BP物體片段中的BP物體片段對(duì)應(yīng)的所述BP物體的至少一個(gè)面設(shè)置面標(biāo)志,以生成至少一個(gè)加工后的面;以及僅針對(duì)所述加工后的面確定所述BP物體內(nèi)部的所述深度范圍。
12.根據(jù)權(quán)利要求1所述的方法,該方法還包括以下步驟:在世界坐標(biāo)系中確定在所述BP物體的表面上的BP物體片段;在所述世界坐標(biāo)系中確定在所述MP物體內(nèi)部的一組BP物體片段以及在所述MP物體外部的一組加工后的BP物體片段;在所述圖像坐標(biāo)系中確定所述 BP物體的一組加工后的面,各個(gè)加工后的面對(duì)應(yīng)于所述一組加工后的BP物體片段中的至少一個(gè)BP物體片段;在所述圖像坐標(biāo)系中確定在所述BP物體內(nèi)部的一組深度范圍,其中,針對(duì)至少一個(gè)加工后的面確定至少一個(gè)深度范圍;在所述世界坐標(biāo)系中確定在所述MP物體的表面上的MP物體片段;在所述圖像坐標(biāo)系中確定與所述一組加工后的BP物體片段中的BP物體片段對(duì)應(yīng)的MP物體片段;如果對(duì)應(yīng)MP物體片段在所述圖像坐標(biāo)系中的深度在所述一組深度范圍當(dāng)中的至少一個(gè)深度范圍內(nèi),則將所述對(duì)應(yīng)MP物體片段添加到所述一組MP物體片段中;以及將所述一組BP物體片段和所述一組MP物體片段轉(zhuǎn)換為圖像坐標(biāo)系中的形成所述圖像的至少一部分的一組像素。
13.根據(jù)權(quán)利要求1所述的方法,其中,所述代理物體的形狀至少外接所述BP物體的形狀。
14.根據(jù)權(quán)利要求1所述的方法,其中,所述代理物體是立體的。
15.一種通過(guò)銑削工具的動(dòng)作執(zhí)行對(duì)物體的銑削的計(jì)算機(jī)模擬的計(jì)算機(jī)系統(tǒng),其中,所述物體由所述物體的模型表示,其中,所述統(tǒng)削工具的動(dòng)作由一組掃掠體表示,所述計(jì)算機(jī)系統(tǒng)包括處理器,該處理器被配置為:確定代理物體,使得所述代理物體的形狀至少外接所述物體的所述模型的形狀;利用所述一組掃掠體模擬所述代理物體的銑削,以生成加工后的代理物體;以及渲染所述加工后的代理物體與所述物體的所述模型之間的布爾交集的圖像。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中,所述物體的所述模型的表面的表示和所述一組掃掠體的表面的表示是不同類(lèi)型的表示。
17.根據(jù)權(quán)利要求15所述的系統(tǒng),其中,所述物體的所述模型的表面的表示和所述一組掃掠體的表面的表不是相同類(lèi)型的表不。
18.—種通過(guò)銑削工具的動(dòng)作執(zhí)行對(duì)物體的銑削的計(jì)算機(jī)模擬的計(jì)算機(jī)程序產(chǎn)品,其中,所述物體由邊界表示(BP)物體表示,其中,所述BP物體包括所述物體的表面的邊界表示,其中,所述統(tǒng)削工具的動(dòng)作由一組掃掠體表示,其中,所述一組掃掠體包括限定所述一組掃掠體的表面的第一組隱函數(shù),所述計(jì)算機(jī)程序產(chǎn)品包括:計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括利用該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)具體實(shí)現(xiàn)的計(jì)算機(jī)可用的程序代碼,其中,所述程序代碼被配置為:確定代理物體,該代理物體具有限定該代理物體的表面的第二組隱函數(shù);利用所述一組掃掠體來(lái)模擬所述代理物體的銑削,以生成加工后的代理(MP)物體,該MP物體具有限定該MP物體的表面的第三組隱函數(shù);渲染所述MP物體與所述BP物體之間的布爾交集的圖像;并且將所述圖像存儲(chǔ)到存儲(chǔ)器中。
19.根據(jù)權(quán)利要求18所述的計(jì)算機(jī)程序產(chǎn)品,其中,所述程序代碼還被配置為:在世界坐標(biāo)系中確定在所述BP物體的表面上的BP物體片段;在所述世界坐標(biāo)系中確定在所述MP物體內(nèi)部的一組BP物體片段以及在所述MP物體外部的一組加工后的BP物體片段;在所述圖像坐標(biāo)系中確定所述BP物體的一組加工后的面,各個(gè)加工后的面對(duì)應(yīng)于所述一組加工后的BP物體片段中的至少一個(gè)BP物體片段;在所述圖像坐標(biāo)系中確定在所述BP物體內(nèi)部的一組深度范圍,其中,針對(duì)至少一個(gè)加工后的面確定至少一個(gè)深度范圍;在所述世界坐標(biāo)系中確定在所述MP物體的表面上的MP物體片段;在所述圖像坐標(biāo)系中確定與所述一組加工后的BP物體片段中的BP物體片段對(duì)應(yīng)的MP物體片段;如果對(duì)應(yīng)MP物體片段在所述圖像坐標(biāo)系中的深度在所述一組深度范圍當(dāng)中的至少一個(gè)深度范圍內(nèi),則將所述對(duì)應(yīng)MP物體片段添加到所述一組MP物體片段中;并且將所述一組BP物體片段和所述一組MP物體片段轉(zhuǎn)換為圖像坐標(biāo)系中的形成所述圖像的至少一部分的一組像素。
20.根據(jù)權(quán)利要求18所述的計(jì)算機(jī)程序產(chǎn)品,其中,各組隱函數(shù)包括從由以下各項(xiàng)構(gòu)成的組中選擇出的隱函數(shù):距離場(chǎng)、采樣距離場(chǎng)、自適應(yīng)采樣距離場(chǎng)、復(fù)合自適應(yīng)采樣距離場(chǎng)以及它們的組合。
【文檔編號(hào)】G05B19/4069GK103649856SQ201280031185
【公開(kāi)日】2014年3月19日 申請(qǐng)日期:2012年6月11日 優(yōu)先權(quán)日:2011年6月24日
【發(fā)明者】阿蘭·蘇利文, L·馬努基安 申請(qǐng)人:三菱電機(jī)株式會(huì)社